【发布时间】:2014-10-24 11:12:17
【问题描述】:
我想将 2 个数据框按列组合成一个。我的数据看起来像:
station build Year Month
1 Bariko 24.5 1961 1
2 Bariko 29.1 1962 1
3 Bariko 26.4 1963 1
4 Bariko 29.0 1961 2
5 Bariko 22.0 1962 2
6 Bariko 25.9 1963 2
7 Bariko 24.2 1961 3
8 Bariko 23.9 1962 3
9 Bariko 24.4 1963 3
10 Bariko 24.0 1961 4
11 Bariko 24.2 1962 4
12 Bariko 24.8 1963 4
我按月计算构建的平均值。我可以用“平均”来命名。
newdata=aggregate(build ~ station +Month, data=data, mean, na.rm = TRUE)
1)我想结合“数据”和“新数据”(4 行对应于我的 4 个月),以获得 12 行和 5 列的数据框(我可以重复每个月的平均值)。
2) 根据第 2 列和第 5 列之间的差异(data$build-data$mean)创建一个新的 value 列。最后,我将获得 6 列的数据(站、构建、年、月、平均值、差异)。最后,我可以按年份绘制差异。
谢谢,
【问题讨论】:
-
ave可以让这更容易dat$mn <- with(dat, ave(build , list(station, Month), FUN=mean) )