【发布时间】:2023-03-24 00:12:01
【问题描述】:
我正在尝试将主要包含 NA 和一些文本条目的变量重新编码为具有两个文本条目之一(作为因子)的变量。目前,变量的条目是“失败”或 NA。例如,
AttentionCheck (variable/column)
NA
NA
NA
Fail
NA
NA
Fail
NA
我认为我可以使用 ifelse 告诉 R 将所有“失败”条目更改为更具体的条目(“注意检查失败(N = 17)”)并将 NA 更改为“通过...”。所以想要的输出如下。
AttentionCheck (variable/column)
Passed...
Passed...
Passed...
Failed Att...
Passed...
Passed...
Failed Att...
Passed...
但是,以下 ifelse 代码(和支持代码)不会产生所需的重新编码。具体来说,它无法重命名 NA。
> StatVsInd1$AttentionCheck <- as.factor(StatVsInd1$AttentionCheck)
> summary(StatVsInd1$AttentionCheck) # use this to complete the Ns for Pass and fail in next lines
Fail NA's
17 246
> StatVsInd1$AttentionCheck <- ifelse(StatVsInd1$AttentionCheck=="Fail",
+ "Failed Attention Check (N = 17)",
+ "Passed Attention Check (N = 246)")
> StatVsInd1$AttentionCheck <- as.factor(StatVsInd1$AttentionCheck)
> summary(StatVsInd1$AttentionCheck)
Failed Attention Check (N = 17) NA's
17 246
我还(未成功)尝试使用 ifelse 使用以下代码更直接地查找和更改 NA:
StatVsInd1$AttentionCheck <- ifelse(StatVsInd1$AttentionCheck==NA,
"Passed Attention Check (N = 246)",
"Failed Attention Check (N = 17)")
我以为这是我通常重新编码因子的方式,但显然我错了。
欢迎任何建议。
【问题讨论】:
-
尝试使用
is.na()而不是==NA
标签: r if-statement recode