another option that i think is easy & intuitive :) library(sqldf)
mydata <- sqldf( "select Subject , Block , avg( Feature1 ) as Feature1 , avg( Feature2 ) as Feature2 , [..keep going..] , avg( Feature10 ) as Feature10 from yourdata group by Subject , Block" ) On Thu, Feb 21, 2013 at 4:45 PM, arun <smartpink...@yahoo.com> wrote: > Hi, > > May be this helps: > > dat1<- read.table(text=" > Subject Block Trial Feature1 Feature2 > 1 1 1 48 40 > 1 1 2 62 18 > 1 2 1 34 43 > 1 2 2 51 34 > 1 3 1 64 14 > ",sep="",header=TRUE) > > > res1<-do.call(rbind,lapply(split(dat1,dat1$Block),function(x) > data.frame(unique(x[,1:2]),t(colMeans(x[,-c(1:3)]))))) > res1 > # Subject Block Feature1 Feature2 > #1 1 1 55.0 29.0 > #2 1 2 42.5 38.5 > #3 1 3 64.0 14.0 > > > #With multiple subjects: > dat2<- read.table(text=" > Subject Block Trial Feature1 Feature2 > 1 1 1 48 40 > 1 1 2 62 18 > 1 2 1 34 43 > 1 2 2 51 34 > 1 3 1 64 14 > 2 1 1 48 35 > 2 1 2 54 15 > 2 2 1 49 50 > 2 2 2 64 40 > 2 3 1 38 28 > ",sep="",header=TRUE) > > > res2<-do.call(rbind,lapply(split(dat2,list(dat2$Subject,dat2$Block)),function(x) > data.frame(unique(x[,1:2]),t(colMeans(x[,-c(1:3)]))))) > res2<-do.call(rbind,split(res2,res2$Subject)) > res2 > # Subject Block Feature1 Feature2 > #1 1 1 55.0 29.0 > #2 1 2 42.5 38.5 > #3 1 3 64.0 14.0 > #4 2 1 51.0 25.0 > #5 2 2 56.5 45.0 > #6 2 3 38.0 28.0 > > > > A.K. > > > > ----- Original Message ----- > From: Johannes Brand <brandjohan...@gmx.de> > To: r-help@r-project.org > Cc: > Sent: Thursday, February 21, 2013 12:02 PM > Subject: [R] remove rows in data frame by average > > Dear all, > > I have a data frame, which looks like this: > > Subject | Block | Trial | Feature1 | Feature2 .... > 1 | 1 | 1 | ... | ... > 1 | 1 | 2 | ... | ... > 1 | 2 | 1 | ... | ... > 1 | 2 | 2 | ... | ... > 1 | 3 | 1 | ... | ... > ...| ...| ...| ... | ... > > Can I remove the "Trial" column by averaging all the rows and without using > a "for loop"? > > At the end my data frame should look like this: > > Subject | Block | Feature1 | Feature2 .... > 1 | 1 | ... | ... > 1 | 2 | ... | ... > 1 | 3 | ... | ... > ...| ...| ... | ... > > Thank you a lot for your help. > > Best, > Johannes > > [[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. > [[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.