[R] Data frame to list
David Winsemius
dwinsemius at comcast.net
Thu Jul 28 22:35:25 CEST 2011
On Jul 28, 2011, at 4:14 PM, Jonathan Greenberg wrote:
> I'm hoping this is an easy problem that I'm missing something
> obvious. Given:
>
> x=c(1,1,1,2,2,3,3,3)
> y=c(1:length(x))
> dataframe=data.frame(x,y)
>
> I would like to convert this to a list for use with certain functions,
> where each entry of the list is a subsetted dataframe based on
> dataframe$x
?split
> split(dataframe, x)
$`1`
x y
1 1 1
2 1 2
3 1 3
$`2`
x y
4 2 4
5 2 5
$`3`
x y
6 3 6
7 3 7
8 3 8
>
> I can do this "brute force" by a for-next loop:
>
> unique_x=unique(dataframe$x)
> unique_x_N=length(unique_x)
> dataframe_to_list=vector(mode="list",length=unique_x_N)
> for(i in 1:unique_x_N)
> {
> dataframe_to_list[[i]]=subset(dataframe,x==unique_x[i])
>
> }
>
> My R-gut is telling me there's a much more efficient way of doing this
> -- is it right?
>
> --j
>
> ______________________________________________
> 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list