【发布时间】:2021-01-04 18:42:56
【问题描述】:
我有一个 4 级问卷数据,其中包含设计为 NA 的问题。例如,如果问题 1 的答案是否定的(编码为 0),则其余问题不适用于参与者,将编码为 NA。然而,这些 NA 不同于那些简单地选择忽略这个问题的人。因此,仅当 Q1 的答案为 0 时,我才尝试将 Q2 和 3 的 NA 替换为 0,否则保留 NA。 我做了一个数据框来进一步说明我的情况:
Q1 <- c(0,0,1,2,0,4)
Q2 <- c(NA,NA,2,1,NA,NA)
Q3 <- c(NA,NA,2,1,NA,4)
data <- cbind(Q1,Q2,Q3)
Q1 Q2 Q3
1 0 NA NA
2 0 NA NA
3 1 2 2
4 2 1 1
5 0 NA NA
6 4 NA 4
预期输出:
Q1 Q2 Q3
1 0 0 0
2 0 0 0
3 1 2 2
4 2 1 1
5 0 0 0
6 4 NA 4
在预期的输出中,如果 Q1 为 0,则 Q2 和 3 中的 NA 更改为 0。对于参与者 6,NA 保持原样。
我正在自学 R,并且一直在为此苦苦挣扎。
我尝试了if、mutate_if、if_else 和case_when 功能都无济于事。有人帮帮我。
这是我尝试过的代码之一的示例,它给了我一个错误。
data %>%
ifelse (Q1 == 0) {
mutate(Q2 = coalesce(Q2,0))
}
【问题讨论】: