R 为什么此ifelse语句会生成NAs?
我正在尝试基于数据集中的其他变量创建一个新变量。我曾经使用ifelse做过类似的任务,但是当我这次尝试时,当条件不满足时,我得到了NA 我希望新变量基于的变量都是二进制的——“是”或“否”。如果其他变量中有任何一个是“是”,我希望将新变量编码为“是”,如果没有一个是编码为“是”,则编码为“否”。当我运行ifelse时,我得到了预期的“Yes”数,但我预期的“No”数是NA 我尝试了以下方法:R 为什么此ifelse语句会生成NAs?,r,R,我正在尝试基于数据集中的其他变量创建一个新变量。我曾经使用ifelse做过类似的任务,但是当我这次尝试时,当条件不满足时,我得到了NA 我希望新变量基于的变量都是二进制的——“是”或“否”。如果其他变量中有任何一个是“是”,我希望将新变量编码为“是”,如果没有一个是编码为“是”,则编码为“否”。当我运行ifelse时,我得到了预期的“Yes”数,但我预期的“No”数是NA 我尝试了以下方法: data$new <- ifelse(var1=="Yes" | var2=="Yes" | va
data$new <- ifelse(var1=="Yes" | var2=="Yes" | var3=="Yes","Yes","No")
data$new如果存在NA,则=
返回NA
。一个选项是cbind
变量“var1”、“var2”、“var3”(不清楚它是data.frame列还是独立向量),与“Yes”
比较,要创建逻辑矩阵,请使用行和
获取“Yes”字符串的和。注意na.rm=TRUE
,它将处理na
元素(如果有)。使用行和,检查值是否大于0,然后选择“是”或“否”
检查其产生NA的原因
v1 <- c("Yes", "No", NA)
v2 <- c("No", NA, "Yes")
(v1 == "Yes")|(v2 == "Yes")
#[1] TRUE NA TRUE
v1如果存在NA,则=
返回NA
。一个选项是cbind
变量“var1”、“var2”、“var3”(不清楚它是data.frame列还是独立向量),与“Yes”
比较,要创建逻辑矩阵,请使用行和
获取“Yes”字符串的和。注意na.rm=TRUE
,它将处理na
元素(如果有)。使用行和,检查值是否大于0,然后选择“是”或“否”
检查其产生NA的原因
v1 <- c("Yes", "No", NA)
v2 <- c("No", NA, "Yes")
(v1 == "Yes")|(v2 == "Yes")
#[1] TRUE NA TRUE
v1尝试complete.cases()在创建变量时省略NA
df$new <- ifelse((var1 =="Yes"| var2=="Yes"|var3=="Yes")& complete.cases(df), "Yes", "No")
df$new尝试complete.cases()在创建变量时省略NA
df$new <- ifelse((var1 =="Yes"| var2=="Yes"|var3=="Yes")& complete.cases(df), "Yes", "No")
df$new这可能是因为您有NA
元素i任何一个'var',这可能是因为您有NA
元素i任何一个'var',谢谢,这就是问题所在。我以为我已经处理了丢失的数据,但事实证明我没有。非常感谢你的帮助。谢谢,这就是问题所在。我以为我已经处理了丢失的数据,但事实证明我没有。非常感谢你的帮助。