HI, May be this: dat <- cbind(x=c(1:100),y=c(100:1)) newarray<-array(do.call(cbind,lapply(split(dat,rep(1:10,each=10)),function(x) cbind(x=x[1:10],y=x[11:20]))),dim=c(10,2,10)) colnames(newarray)<-c("x","y")
newarray[,,1] # x y #[1,] 1 100 #[2,] 2 99 #[3,] 3 98 #[4,] 4 97 #[5,] 5 96 #[6,] 6 95 #[7,] 7 94 #[8,] 8 93 #[9,] 9 92 #[10,] 10 91 A.K. ----- Original Message ----- From: Hans Thompson <hans.thomps...@gmail.com> To: r-help@r-project.org Cc: Sent: Monday, October 15, 2012 7:58 PM Subject: [R] Chopping a two column data frame by rows into a three dimensional array. If I have a two column data frame like: > dat <- cbind("x"=c(1:100),"y"=c(100:1)) How can I create an array that splits every ten rows of that data frame into a third dimension of an array so that: > newarray[,,1] ,,1 x y 1 100 2 99 3 98 ... ... 10 91 ,,2 x y 11 90 12 89 ... ... ... Thanks. [[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. ______________________________________________ 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.