Hi, You can do this either by: with(data1,aggregate(y,by=list(x),function(x) x)) #2nd column is a list here #or res1<-split(seq(nrow(data1)),data1$x) #or res1<-tapply(data1$y,list(data1$x),function(x) x) res2<- t(sapply(res1,`[`,1:max(sapply(res1,length)))) res2[cbind(c(rep(8,4),rep(9,4)),c(1:4,1:4))]<-res2[cbind(c(rep(8,4),rep(9,4)),c(3,1,4,2,3,1,4,2))] res2 # [,1] [,2] [,3] [,4] #0:00:00 1 8 17 24 #0:30:00 2 9 18 25 #1:00:00 3 10 19 26 #1:30:00 4 11 20 27 #2:00:00 5 12 21 28 #2:30:00 6 13 22 29 #3:00:00 7 14 23 30 #3:30:00 NA 15 NA 31 #4:00:00 NA 16 NA 32
#or res3<-do.call(rbind,lapply(res1,function(x) {if(length(x) < 4) c(NA,x[1],NA,x[2]) else x})) tail(res3) # [,1] [,2] [,3] [,4] #1:30:00 4 11 20 27 #2:00:00 5 12 21 28 #2:30:00 6 13 22 29 #3:00:00 7 14 23 30 #3:30:00 NA 15 NA 31 #4:00:00 NA 16 NA 32 identical(res2,res3) #[1] TRUE A.K. ----- Original Message ----- From: Swagath <swagathnavi...@gmail.com> To: r-help@r-project.org Cc: Sent: Tuesday, December 25, 2012 12:52 PM Subject: [R] splitting a long dataframe Dear all...Merry Christmas I would like to split a long dataframe. The dataframe looks like this x<-c('0:00:00', '0:30:00', '1:00:00', '1:30:00', '2:00:00', '2:30:00', '3:00:00', '0:00:00', '0:30:00', '1:00:00', '1:30:00', '2:00:00', '2:30:00', '3:00:00', '3:30:00', '4:00:00','0:00:00', '0:30:00', '1:00:00', '1:30:00', '2:00:00', '2:30:00', '3:00:00', '0:00:00', '0:30:00', '1:00:00', '1:30:00', '2:00:00', '2:30:00', '3:00:00' , '3:30:00', '4:00:00') y=seq(1:32) data1=data.frame(x,y) i want to split in such a way that the output looks like 0:00:00 1 8 17 24 0:30:00 2 9 18 25 1:00:00 3 10 19 26 1:30:00 4 11 20 27 2:00:00 5 12 21 28 2:30:00 6 13 22 29 3:00:00 7 14 23 30 3:30:00 NA 15 NA 31 4:00:00 NA 16 NA 32 any ideas or functions that i look into for doing this? Thanks a lot for your help and time. Cheers, Swagath ______________________________________________ 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. ______________________________________________ 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.