【发布时间】:2021-06-29 08:33:48
【问题描述】:
我处理调查数据并通过组合来自不同问题的答案来构建索引。
当答案最少为 2 时,我想创建一个新变量,对 3 个问题(从 1 到 10 分)的平均答案进行评分。否则,我希望我的 newvar 得分为 0。所有这一切都在答案的条件下都与NA不同。
这是我尝试获得的示例
DF <-
data.frame(matrix(
c(1, 3, 4, 9, 4, 3, 10, 4, 6, 4, 7, NA),
nrow = 4,
ncol = 3
))
# X1 X2 X3
# 1 1 4 6
# 2 3 3 4
# 3 4 10 7
# 4 9 4 NA
我想创建 DF$new_var_ave 比如
# X1 X2 X3 new_var_ave
# 1 1 4 6 0
# 2 3 3 4 3.3
# 3 4 10 7 7
# 4 9 4 NA NA
I have tried :
```R
DF$new_var_ave <-
apply(DB_W[, c("X1", "X2", "X3")], 1, function(x) {
ifelse(any(is.na(x)), NA, ifelse(all(x > 2), mean, 0))})`
但是它失败了,我收到了错误文本:
Error in rep(yes, length.out = len) :
attempt to replicate an object of type 'closure'
非常感谢您的帮助和建议。
【问题讨论】:
-
欢迎来到 StackOverflow!你的意思是
mean(x), 0而不是mean, 0? -
感谢 Aurèle!我想要三个变量的平均值。
-
以后,请考虑在您的问题中包含minimal reproducible example
-
你是对的。我会编辑我的问题
-
为什么你的第二行的平均值等于
0?