我有一个包含两个分组变量'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
(所有与当前组 'a' 不同的 'mdl' )的 'pt' 的平均值。
期望结果:
# 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