Sorry folks, I keep forgetting to switch to my r-help email to send the replies so they get unintentionally sent to a moderator (particularly sorry for that moderators...)
C ---------- Forwarded message ---------- From: Chris Carleton <w.ccarle...@gmail.com> Date: 15 November 2010 17:07 Subject: Re: [R] indexing lists To: Joshua Wiley <jwiley.ps...@gmail.com> Cc: r-help@r-project.org Thanks for the suggestions. The issue for me is that the top level index is also like a database key so it might be a bit annoying to coerce it to char() so that I can reference it with a $ and then I would have to still be able to find out what the name was automatically. I've got a function right now that iterates through a list of values (db keys called cat values in this case) that returns an object from another function that will be used in yet another function. So, I have to store the objects and then pass each one in turn to a function while keeping track of what cat value that object is associated with so that it can be stored in relation to the cat value in a dataframe. Essentially like this... for i in cat { object <- somefunction() alist[[ i ]] <- object } for i in cat { result <- somefunction(object[[ i ]]) adataframe[[ i, c('cat','result') ]] <- c( i, result) } I'm paranoid about loosing track of which cat value is associated with which result and that's why I'm looking for a way to ensure that the output is stored correctly. The whole thing is going to be automated. Any suggestions would definitely be appreciated. I've tried just creating a list of lists to keep track of things so that list[[1]][[1]] is the cat value and list[[1]][[2]] is the associated object, but now I'm having trouble passing the object to the next function. This might take some time for me to work out. Thanks, Chris On 15 November 2010 16:38, Joshua Wiley <jwiley.ps...@gmail.com> wrote: > Hi Chris, > > Does this do what you're after? It just compares each element of a > (i.e., a[[1]] and a[[2]]) to c(1, 2) and determines if they are > identical or not. > > which(sapply(a, identical, y = c(1, 2))) > > There were too many 1s floating around for me to figure out if you > wanted to find elements of a that matched the entire vector or > subelements of a that matched elements of the vector (if that makes > any sense). > > HTH, > > Josh > > On Mon, Nov 15, 2010 at 1:24 PM, Chris Carleton > <w_chris_carle...@hotmail.com> wrote: > > Hi List, > > > > I'm trying to work out how to use which(), or another function, to find > the > > top-level index of a list item based on a condition. An example will > clarify > > my question. > > > > a <- list(c(1,2),c(3,4)) > > a > > [[1]] > > [1] 1 2 > > > > [[2]] > > [1] 3 4 > > > > I want to find the top level index of c(1,2), which should return 1 > since; > > > > a[[1]] > > [1] 1 2 > > > > I can't seem to work out the syntax. I've tried; > > > > which(a == c(1,2)) > > > > and an error about coercing to double is returned. I can find the index > of > > elements of a particular item by > > > > which(a[[1]]==c(1,2)) or which(a[[1]]==1) etc that return [1] 1 2 and [1] > 1 > > respectively as they should. Any thoughts? > > > > C > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > > > > > -- > Joshua Wiley > Ph.D. Student, Health Psychology > University of California, Los Angeles > http://www.joshuawiley.com/ > > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.