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.ccarleton@gmail.com>
Date: 15 November 2010 17:07
Subject: Re: [R] indexing lists
To: Joshua Wiley <jwiley.psych@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.psych@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_carleton@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]]

