假设我有一个数据框,data
包含多个站点,由整数站点代码表示。在这些网站中,来自多个视野的样本A
,B
和C
,其中包含某些类型的观察结果,在value
列中显示:
site<- c(12,12,12,12,45,45,45,45)
horizon<-c('A','A','B','C','A','A','B','C')
value<- c(19,14,3,2,18,19,4,5)
comment<- c('pizza','pizza','pizza','pizza','taco','taco','taco','taco')
data<- data.frame(site,horizon,value,comment)
看起来像这样:
site horizon value comment
1 12 A 19 pizza
2 12 A 14 pizza
3 12 B 3 pizza
4 12 C 2 pizza
5 45 A 18 taco
6 45 A 19 taco
7 45 B 4 taco
8 45 C 5 taco
在这种情况下,两个网站都有多个A
观察结果。我想平均一个站点内重复视野的值。我想在数据框中保留注释行。站点内的所有观察在评论向量中具有相同的条目。我希望输出看起来像这样:
site horizon value comment
1 12 A 16.5 pizza
3 12 B 3 pizza
4 12 C 2 pizza
5 45 A 18.5 taco
7 45 B 4 taco
8 45 C 5 taco
答案 0 :(得分:0)
d <- read.table(header=TRUE, text=
' site horizon value comment
1 12 A 19 pizza
2 12 A 14 pizza
3 12 B 3 pizza
4 12 C 2 pizza
5 45 A 18 taco
6 45 A 19 taco
7 45 B 4 taco
8 45 C 5 taco')
merge(aggregate(value ~ site+horizon, FUN=mean, data=d), unique(d[,-3]))