【发布时间】:2021-06-24 12:16:34
【问题描述】:
我有一个包含两个分组变量“mkt”和“mdl”以及一些值“pr”的数据框:
df <- data.frame(mkt = c(1,1,1,1,2,2,2,2,2),
mdl = c('a','a','b','b','b','a','b','a','b'),
pr = c(120,120,110,110,145,130,145,130, 145))
df
mkt mdl pr
1 1 a 120
2 1 a 120
3 1 b 110
4 1 b 110
5 2 b 145
6 2 a 130
7 2 b 145
8 2 a 130
9 2 b 145
在每个 'mkt' 中,每个 'mdl' 的平均 'pr' 应该计算为同一 'mkt' 中所有其他 'mdl' 的 'pr' 的平均值,除了当前的“mdl”。
例如,对于由mkt == 1 和mdl == a 定义的组,'avgother' 计算为mkt == 1(相同'mkt')和mdl == b(所有其他' mdl' 比当前组a)。
想要的结果:
# mkt mdl pr avgother
# 1 1 a 120 110
# 2 1 a 120 110
# 3 1 b 110 120
# 4 1 b 110 120
# 5 2 b 145 130
# 6 2 a 130 145
# 7 2 b 145 130
# 8 2 a 130 145
# 9 2 b 145 130
【问题讨论】: