Hi, So it might be in this format. Same code works.
dat6<-data.frame(patient=c(c(1:3)[rep(c(1,1,1,2,2,3,3,3,3))],rep(c(4:10),rep(3,7))), var=c("cycle0","cycle1","cycle2","cycle5","cycle12")[rep(c(1,2,3,1,5,1,2,3,4,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3))],value=c(rnorm(30,1,0.5))) > dat6 patient var value 1 1 cycle0 1.56422778 2 1 cycle1 0.58855364 3 1 cycle2 0.80263892 4 2 cycle0 1.12141258 5 2 cycle12 1.59177846 6 3 cycle0 0.09706219 7 3 cycle1 0.62707806 8 3 cycle2 1.67569203 9 3 cycle5 1.46231543 10 4 cycle0 0.22468741 11 4 cycle1 1.78807770 12 4 cycle2 2.10534150 13 5 cycle0 0.71970367 14 5 cycle1 0.80972468 15 5 cycle2 0.37859704 16 6 cycle0 1.72754736 17 6 cycle1 0.24323640 18 6 cycle2 0.67442840 19 7 cycle0 0.73625734 20 7 cycle1 0.74946198 21 7 cycle2 0.05603698 22 8 cycle0 0.87371378 23 8 cycle1 1.21543691 24 8 cycle2 0.87648443 25 9 cycle0 1.28035157 26 9 cycle1 0.99059664 27 9 cycle2 1.01691054 28 10 cycle0 1.02381366 29 10 cycle1 0.64904309 30 10 cycle2 2.28296855 > dat7<-cast(dat6,patient~var,value="value") > dat7 patient cycle0 cycle1 cycle12 cycle2 cycle5 1 1 1.56422778 0.5885536 NA 0.80263892 NA 2 2 1.12141258 NA 1.591778 NA NA 3 3 0.09706219 0.6270781 NA 1.67569203 1.462315 4 4 0.22468741 1.7880777 NA 2.10534150 NA 5 5 0.71970367 0.8097247 NA 0.37859704 NA 6 6 1.72754736 0.2432364 NA 0.67442840 NA 7 7 0.73625734 0.7494620 NA 0.05603698 NA 8 8 0.87371378 1.2154369 NA 0.87648443 NA 9 9 1.28035157 0.9905966 NA 1.01691054 NA 10 10 1.02381366 0.6490431 NA 2.28296855 NA A.K. ________________________________ From: Lib Gray <libgray3...@gmail.com> To: arun <smartpink...@yahoo.com> Cc: R help <r-help@r-project.org> Sent: Wednesday, June 6, 2012 4:52 PM Subject: Re: [R] Combine subsets by factor level They do not; each patient only has rows for the cycles it has. Some have only one, some have more than ten. On Jun 6, 2012 2:24 PM, "arun" <smartpink...@yahoo.com> wrote: Hi, > >Try this: > >library(reshape) > >dat4<-data.frame(patient=rep(c(1:10), >rep(3,10)),var=rep(c("cycle0","cycle1","cycle2"),rep(1,3)),value=c(rnorm(15,1,0.5),NA,rnorm(5,1,0.5),NA,rnorm(8,1,0.5))) >> dat5<-cast(dat4,patient~var,value="value") >> dat5 > patient cycle0 cycle1 cycle2 >1 1 1.8826827 1.0316985 1.0084754 >2 2 1.1822553 1.5494087 0.9173749 >3 3 0.3935503 0.7012282 0.5213031 >4 4 0.8330390 0.6430550 0.7751283 >5 5 1.4092714 0.8120330 0.6255491 >6 6 NA 0.1068520 0.7556006 >7 7 1.4322698 1.6109262 0.9650534 >8 8 NA 0.3861208 1.1349206 >9 9 1.5659958 1.8725942 1.5676570 >10 10 1.0895054 1.1941775 1.3932515 > > >For the missing values, I assume that cycle will be in the dataset on the >longformat and its value as NA. > > >A.K. > > >________________________________ >From: Lib Gray <libgray3...@gmail.com> >To: arun <smartpink...@yahoo.com> >Cc: R help <r-help@r-project.org> >Sent: Wednesday, June 6, 2012 2:28 PM >Subject: Re: [R] Combine subsets by factor level > > >Yes, except that patients have different cycle numbers. Such as, one might >have cycle 1,2,3, and another has 1,4,12. >On Jun 6, 2012 12:54 PM, "arun" <smartpink...@yahoo.com> wrote: > >Hi Iglucia, >> >>I am not sure how your dataset looks like. Does it look similar to this: >> >>> dat4<-data.frame(patient=rep(c(1:10), >>> rep(3,10)),var=rep(c("cycle0","cycle1","cycle2"),rep(1,3)),value=c(rnorm(15,1,0.5),NA,rnorm(5,1,0.5),NA,rnorm(8,1,0.5))) >>> dat4 >> patient var value >>1 1 cycle0 1.8826827 >>2 1 cycle1 1.0316985 >>3 1 cycle2 1.0084754 >>4 2 cycle0 1.1822553 >>5 2 cycle1 1.5494087 >>6 2 cycle2 0.9173749 >>7 3 cycle0 0.3935503 >>8 3 cycle1 0.7012282 >>9 3 cycle2 0.5213031 >>10 4 cycle0 0.8330390 >>11 4 cycle1 0.6430550 >>12 4 cycle2 0.7751283 >>13 5 cycle0 1.4092714 >>14 5 cycle1 0.8120330 >>15 5 cycle2 0.6255491 >>16 6 cycle0 NA >>17 6 cycle1 0.1068520 >>18 6 cycle2 0.7556006 >>19 7 cycle0 1.4322698 >>20 7 cycle1 1.6109262 >>21 7 cycle2 0.9650534 >>22 8 cycle0 NA >>23 8 cycle1 0.3861208 >>24 8 cycle2 1.1349206 >>25 9 cycle0 1.5659958 >>26 9 cycle1 1.8725942 >>27 9 cycle2 1.5676570 >>28 10 cycle0 1.0895054 >>29 10 cycle1 1.1941775 >>30 10 cycle2 1.3932515 >> >> >> >> >> >>A.K. >> >> >> >> >> >> >>----- Original Message ----- >>From: lglucia <libgray3...@gmail.com> >>To: r-help@r-project.org >>Cc: >>Sent: Wednesday, June 6, 2012 12:07 AM >>Subject: [R] Combine subsets by factor level >> >>I'm attempting to change a data set by compressing rows into columns. >>Currently there are several rows that all have information about one >>"patient," but at different cycles. I'm trying to make each patient only >>have one row in the data set. >> >>Does anyone know a good way to combine data sets by factor level? I've >>separated the groups into different subsets by cycle, but not every patient >>has data for every cycle (i.e. there are 1200 who have cycle 0, but only 200 >>of those have a cycle 1, and a different number have cycles higher than >>that, etc). I then made the patient number the identifying label. If there >>is a way to column-combine these subsets by the factor level of these >>patient names, and leave any patients that are missing a cycle as NA? >> >>If anyone has insight on how to do this, or a better way to complete what >>I'm trying to do, I'd appreciate it! >> >>-- >>View this message in context: >>http://r.789695.n4.nabble.com/Combine-subsets-by-factor-level-tp4632472.html >>Sent from the R help mailing list archive at Nabble.com. >> >>______________________________________________ >>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.