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 <swagathnavin82 at gmail.com>
To: r-help at 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 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.