R中的条件平均
目前,我在R中面临一个数据操作问题,我在这里还没有找到解决方案(尽管有许多看似类似的问题,但这并没有引导我走上正确的道路) 样本数据说明: 数字(1-3)指受访者被询问的独立实体。这些实体具有不同的角色(x)和属性(y) 这里重要的一点是x1与y1相连,x2与y2相连,等等 目标: 每种情况下。我希望每个角色x的y平均得分(在单独的附加列中,例如m1、m2、m3、m4、m5) 示例: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
- 对于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