[R] remove rows in data frame by average

arun smartpink111 at yahoo.com
Thu Feb 21 22:45:05 CET 2013


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 <brandjohannes at gmx.de>
To: r-help at 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 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.




More information about the R-help mailing list