[R] Data frame to list

Jonathan Greenberg jgrn at illinois.edu
Thu Jul 28 22:14:14 CEST 2011


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

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



More information about the R-help mailing list