[R] Selecting/Accessing the last vector in a list of a list of data.frames
Benilton Carvalho
bcarvalh at jhsph.edu
Wed Aug 12 02:44:32 CEST 2009
what are exactly "some operations"? if you could provide a
reproducible code, it would make it easier to understand what you're
trying to achieve.
for example, if you were to get the means, you could do something like:
theMeans <- rapply(test, mean)
cheers,
b
On Aug 11, 2009, at 8:59 PM, Bryan Hanson wrote:
> Thanks Henrique. I would have not thought of the syntax you
> suggest, though
> it embodies the sort of multilevel (not quite recursive) application
> of
> lapply I was thinking of. However, it returns “test” with V2 missing,
> everything else intact. Strange; I can't really state in words what
> I think
> it should do, much less what it does do!
>
> I think an easier approach for me will be to re-write the function
> that
> generates "test" so it is simpler to extract what I need. I will
> think on
> it.
>
> Thanks, Bryan
>
>> temp <- lapply(test, lapply, '[', 'V1')
>> str(temp)
> List of 2
> $ G:List of 4
> ..$ cls:'data.frame': 101 obs. of 1 variable:
> .. ..$ V1: num [1:101] -0.0019 -0.0019 -0.00189 -0.00188 -0.00186 ...
> ..$ rob:'data.frame': 101 obs. of 1 variable:
> .. ..$ V1: num [1:101] -0.00142 -0.00141 -0.0014 -0.00139
> -0.00137 ...
> ..$ c : num NA
> ..$ r : num NA
> $ T:List of 4
> ..$ cls:'data.frame': 101 obs. of 1 variable:
> .. ..$ V1: num [1:101] -0.00222 -0.00222 -0.00221 -0.00219
> -0.00216 ...
> ..$ rob:'data.frame': 101 obs. of 1 variable:
> .. ..$ V1: num [1:101] -0.000981 -0.000979 -0.000972 -0.000961
> -0.000946
> ..
> ..$ c : num NA
> ..$ r : num NA
>
>
> On 8/11/09 7:28 PM, "Henrique Dallazuanna" <wwwhsd at gmail.com> wrote:
>
>> If I understand correctly your question, you can try something
>> about like
>> this:
>>
>> # Access all elements named 'V1' in your list
>> lapply(test, lapply, '[', 'V1')
>>
>>
>> On Tue, Aug 11, 2009 at 3:49 PM, Bryan Hanson <hanson at depauw.edu>
>> wrote:
>>> Hello Again R Folks:
>>>
>>> I’m trying to clean up some code. Suppose I have an object like
>>> this:
>>>
>>>> str(test)
>>> List of 2
>>> $ G:List of 2
>>> ..$ cls:'data.frame': 101 obs. of 2 variables:
>>> .. ..$ V1: num [1:101] -0.0019 -0.0019 -0.00189 -0.00188
>>> -0.00186 ...
>>> .. ..$ V2: num [1:101] 0.000206 0.000247 0.000288 0.000329
>>> 0.000371 ...
>>> ..$ rob:'data.frame': 101 obs. of 2 variables:
>>> .. ..$ V1: num [1:101] -0.00142 -0.00141 -0.0014 -0.00139
>>> -0.00137 ...
>>> .. ..$ V2: num [1:101] 0.000424 0.000456 0.000487 0.000517
>>> 0.000546 ...
>>> $ T:List of 2
>>> ..$ cls:'data.frame': 101 obs. of 2 variables:
>>> .. ..$ V1: num [1:101] -0.00222 -0.00222 -0.00221 -0.00219
>>> -0.00216 ...
>>> .. ..$ V2: num [1:101] -0.00077 -0.000742 -0.000712 -0.000681
>>> -0.000648
>>> ..
>>> ..$ rob:'data.frame': 101 obs. of 2 variables:
>>> .. ..$ V1: num [1:101] -0.000981 -0.000979 -0.000972 -0.000961
>>> -0.000946
>>> ..
>>> .. ..$ V2: num [1:101] -0.000332 -0.000303 -0.000274 -0.000245
>>> -0.000216
>>> ..
>>>
>>> I need to perform some operations on each value of V1 in turn,
>>> then each
>>> value of V2 in turn (so for instance I want test$G$cls$V1). The
>>> structure
>>> of this object is nearly constant except the first elements of the
>>> list (G,
>>> T in the example) may vary in number and name, so I need something
>>> that
>>> accommodates this.
>>>
>>> I can do this with loops, but it seems like a job for lapply or
>>> rapply, but
>>> these don't quite work. I've played with quite a few variations,
>>> searched
>>> the help archives and found a number of useful ideas, but not
>>> quite what I
>>> need. The only thing that nearly works is do.call(cbind, object)
>>> enough
>>> times to bring V1 and V2 "to the surface" but then I've lost my
>>> carefully
>>> constructed naming.
>>>
>>> Any suggestions appreciated. It seems like there might be a simple
>>> approach, but I may be too tired right now to see it!
>>>
>>> Thanks, Bryan
>>> *************
>>> Bryan Hanson
>>> Professor of Chemistry & Biochemistry
>>> DePauw University, Greencastle IN USA
>>>
>>> ______________________________________________
>>> R-help at 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.
>>
>>
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list