Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的条件平均_R_Conditional - Fatal编程技术网

R中的条件平均

R中的条件平均,r,conditional,R,Conditional,目前,我在R中面临一个数据操作问题,我在这里还没有找到解决方案(尽管有许多看似类似的问题,但这并没有引导我走上正确的道路) 样本数据说明: 数字(1-3)指受访者被询问的独立实体。这些实体具有不同的角色(x)和属性(y) 这里重要的一点是x1与y1相连,x2与y2相连,等等 目标: 每种情况下。我希望每个角色x的y平均得分(在单独的附加列中,例如m1、m2、m3、m4、m5) 示例: 对于ID==A,我们期望x==1:(4+3)/2=3.5[“2”不需要,因为x3的“链接”值不等于1] 对于I

目前,我在R中面临一个数据操作问题,我在这里还没有找到解决方案(尽管有许多看似类似的问题,但这并没有引导我走上正确的道路)

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

这里重要的一点是x1与y1相连,x2与y2相连,等等

目标: 每种情况下。我希望每个角色x的y平均得分(在单独的附加列中,例如m1、m2、m3、m4、m5)

示例:

  • 对于ID==A,我们期望x==1:(4+3)/2=3.5[“2”不需要,因为x3的“链接”值不等于1]
  • 对于ID==A,我们期望x==3:(2)/1=2
  • 对于ID==B,我们期望x==1:NA
  • 对于ID==B,我们期望x==2:(3+4+5)/3=4

有什么提示吗?谢谢大家!

我会首先重组您的数据,但考虑到它的现状,这可能会起作用

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

我会先重组你的数据,但考虑到它是怎样的,这可能会起作用

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

这可能只是我的想法,但你能详细说明一下你的算法如何达到这些条件平均值吗?你是否打算将A:x3处的数据点设为3而不是5,基于“对于ID==A,我们期望x==3:(2)/1=2”?@RomanLuštrik谢谢你,请看编辑过的帖子。@CJYetman:有趣,我已经改变了这个相当长一段时间以前(但你是正确的关于原始版本)!这可能只是我的想法,但你能详细说明一下你的算法如何达到这些条件平均值吗?你是否打算将A:x3处的数据点设为3而不是5,基于“对于ID==A,我们期望x==3:(2)/1=2”?@RomanLuštrik谢谢你,请看编辑过的帖子。@CJYetman:有趣,我已经改变了这个相当长一段时间以前(但你是正确的关于原始版本)!这看起来很有希望。我以后必须把它取出来研究,但它确实做了它应该做的事情。非常感谢。这看起来很有希望。我以后必须把它取出来研究,但它确实做了它应该做的事情。非常感谢。
  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