Hi Stella, I think Sarah is correct in asking if that is what you really want, but you can get a list similar to what you asked for like this:
sample_names<-unique(sx.df$Samples) sx.lst<-list() for(sn in 1:length(sample_names)) sx.lst[[sn]]<-sx.df$counts[sx.df$Samples==sample_names[sn]] names(sx.lst)<-sample_names If you really want a data frame, you will have to coerce the number of values in each element of the list to the same length: maxlen<-max(unlist(lapply(sx.lst,length))) for(i in 1:length(sx.lst)) { to_fill<-maxlen-length(sx.lst[[i]]) if(to_fill > 0) sx.lst[[i]]<-c(sx.lst[[i]],rep(NA,to_fill)) } sx2.df<-as.data.frame(sx.lst) Jim On Thu, Jul 30, 2015 at 6:48 AM, Sarah Goslee <sarah.gos...@gmail.com> wrote: > Hi Stella, > > On Wed, Jul 29, 2015 at 1:14 PM, Stella Xu <stella...@hli.ubc.ca> wrote: >> >> My question is about how to select and rearrange the data to a new data >> frame >> Here is an example: >> Samples counts time >> A 10 3 >> A 12 4 >> A 11 3 >> B 12 4 >> B 10 5 >> C 11 2 >> C 13 3 >> Say, if I want to make a new table that only look at “counts” as >> below: >> A B C >> 10 12 11 >> 12 10 13 >> 11 >> How can I do this in R? >> Thank you! > > Your example data doesn't use time at all, and contains a duplicate > pair of A,?,3 - what do you want to have happen there? How should > duplicates be handled? How should the ordering of values work? If > instead that should be a 5, here's something that is almost what you > want (but I find more useful): > > x <- structure(list(Samples = c("A", "A", "A", "B", "B", "C", "C"), > counts = c(10L, 12L, 11L, 12L, 10L, 11L, 13L), time = c(3L, > 4L, 5L, 4L, 5L, 2L, 3L)), .Names = c("Samples", "counts", > "time"), class = "data.frame", row.names = c(NA, -7L)) > > library(reshape2) > dcast(x, time ~ Samples, value.var="counts", sum) > time A B C > 1 2 0 0 11 > 2 3 10 0 13 > 3 4 12 12 0 > 4 5 11 10 0 > > If you want the results "scooted up", I think there was recently a > discussion on this list on doing so. > > Sarah > -- > Sarah Goslee > http://www.functionaldiversity.org > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.