【发布时间】:2018-08-06 10:43:43
【问题描述】:
我有一组来自两个变量的 85 种可能组合,一个有五个值(年份),一个有 17 个值(位置)。我制作了一个数据框,第一列中包含年份,第二列中包含位置。对于年份和位置的每个组合,我想计算加权平均值,然后根据年份和位置值将其添加到第三列。
我的代码如下:
for (i in unique(data1$year)) {
for (j in unique(data1$location)) {
data2 <- crossing(data1$year, data1$location)
dataname <- subset(data1, year %in% i & location %in% j)
result <- weighted.mean(dataname$length, dataname$raising_factor, na.rm = T)
}
}
我得到的结果将最后计算的平均值放在每一行的第三列中。
我怎样才能让它根据匹配的年份和位置组合添加?
谢谢。
【问题讨论】:
-
请填写您的question reproducible。添加预期输出并添加 data1 data.frame 的子集。
-
检查
dplyr::group_by和mutate。