我在Mac OS Sierra 10.12.2中使用Rstudio版本1.10.136,这就是我想要做的。我有一组数据,我创建了一个数据框,然后在删除NA后对其进行了过滤,它看起来像这样:
Date sulfate nitrate ID
279 2003-10-06 7.2100 0.6510 1
285 2003-10-12 5.9900 0.4280 1
291 2003-10-18 4.6800 1.0400 1
297 2003-10-24 3.4700 0.3630 1
303 2003-10-30 2.4200 0.5070 1
现在我想基于ID调用计算平均值,例如:
mean("specdata_subset", "sulfate", 1:10)
或
mean("specdata_subset", "nitrate", 40)
如何编写一个通用功能,帮助我根据ID号计算平均值。
答案 0 :(得分:1)
使用aggregate()
:
aggregate(nitrate~ID, df, mean)
aggregate(sulfate~ID, df, mean)
数据:
df <- read.table(text = '
Date sulfate nitrate ID
279 2003-10-06 7.2100 0.6510 1
285 2003-10-12 5.9900 0.4280 1
291 2003-10-18 4.6800 1.0400 1
297 2003-10-24 3.4700 0.3630 1
303 2003-10-30 2.4200 0.5070 1')