[R] Selecting data from list object

Joshua Wiley jwiley.psych at gmail.com
Thu Apr 7 08:37:19 CEST 2011


Hi Santosh,

Try this:

sapply(d, `[[`, i = 1)

To answer your question about "without using the apply functions", I
think the answer is "not really".  Data frames are a type of list, so
if you can assume that it is reasonable to extract the same element
from every element of your list, that is for j = 1, ... n list
elements, and i = 1, ... , k elements in each list element j, if k is
identical across all n list elements, then you can simply reshape the
list into a (i, j) data frame and extract based on rows or columns.
To the extent that all i may not exist in all j, attempting to extract
the ith element from every j list element becomes questionable.  You
may know certain properties of your list (e.g., k varies across j, but
k >= 4, so it would always be defined for 1 <= i <= 4), that make what
you want to do logical and reliable, but there are not the general
methods as in data frames, matrices, or arrays for extracting based on
a particular dimension (all of row one, etc.).  For some things you
can use:

d[[c(1, 1)]]

which is equivalent to j = 1, i = 1.  There is also list method for
as.data.frame so in your example, you could do:

as.data.frame(d)

or

as.data.frame(d)[1, ]

so long as your data was conformable.

Cheers,

Josh

On Wed, Apr 6, 2011 at 11:14 PM, santosh <santosh.srinivas at gmail.com> wrote:
> Hello Group,
>
> Is there a simpler way to get data out of a list object? (like in data
> frame without using the apply functions)
>
> I have the following dataset
>
>> dput(d)
> list(c("20110405", "092102"), c("20110405", "092538"), c("20110405",
> "093458"), c("20110405", "101124"), c("20110405", "102041"),
>    c("20110405", "103659"))
>
> I extracted my data like this:
>
> getDate <- function(x)(unlist(x[[1]]))
>
> unlist(lapply(d, getDate))
> [1] "20110405" "20110405" "20110405" "20110405" "20110405" "20110405"
>
> Isn't there an easier way to do this?
>
> Thanks,
> Santosh
>
> ______________________________________________
> 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.
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/



More information about the R-help mailing list