Try this: split(dataframe, dataframe$x)
Jean `·.,, ><(((º> `·.,, ><(((º> `·.,, ><(((º> Jean V. Adams Statistician U.S. Geological Survey Great Lakes Science Center 223 East Steinfest Road Antigo, WI 54409 USA From: Jonathan Greenberg <j...@illinois.edu> To: r-help <r-help@r-project.org> Date: 07/28/2011 03:22 PM Subject: [R] Data frame to list Sent by: r-help-boun...@r-project.org 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 ______________________________________________ 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. [[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.