R中的条件均值

Conditional Means in R

我目前在 R 中遇到一个数据操作问题,到目前为止我还没有在这里找到解决方案(虽然有很多看似相似的问题,但是,并没有引导我走上正确的道路)。

样本数据说明: 数字 (1-3) 指受访者被询问的不同实体。这些实体具有不同的角色 (x) 和属性 (y)。

ID x1 x2 x3 y1 y2 y3
A  1  1  5  4  3  2
B  2  2  2  3  4  5

这里的重点是 x1 链接到 y1,x2 链接到 y2,等等

目标: 对于每个案例。我想为每个角色 x 获得 y 的平均分数(在单独的附加列中,例如 m1、m2、m3、m4、m5)

示例:

有什么提示吗?谢谢!

我会先重组你的数据,但考虑到它的情况,这可能有效...

df <- read.table(header = T, text = '
ID x1 x2 x3 y1 y2 y3
A  1  1  3  4  3  2
B  2  2  2  3  4  5
')

for (entity in 1:3) {
  df[paste0('m', entity)] <- sapply(1:nrow(df), function(row) { 
    value <- mean(df[row, 5:7][df[row, 2:4] == entity])
    ifelse(is.nan(value), NA, value)
  })
}

df

给这个...

  ID x1 x2 x3 y1 y2 y3  m1 m2 m3
1  A  1  1  3  4  3  2 3.5 NA  2
2  B  2  2  2  3  4  5  NA  4 NA