【发布时间】:2021-01-25 00:05:36
【问题描述】:
我正在创建虚拟变量,其中缺失值为 1,非缺失值为 0。缺失值为 NA,即:
NA
NA
Positive
NA
Negative
我的代码一次一个变量成功地创建了虚拟变量:
library(dplyr)
#create new dummy variable
df <- mutate(df, newvar = ifelse(is.na(var1), 1,0))
#check
sum(df$newvar == 1)
我有 4 个字符串变量,想创建一个新的虚拟变量,其中任何变量中的缺失值为 1,非缺失值为 0。我尝试重用上述代码:
mylist <- c("var1", "var2", "var3", "var4")
for(i in mylist){
df <- mutate(df, newvar = ifelse(is.na(i), 1,0))
}
我知道我错误地使用了for 循环,但这是正确的方法,还是我应该做一些不同的事情?
【问题讨论】:
-
请为变量
df提供虚拟数据。我们无法说出“缺失值”是什么意思。这些空字符串是""、NA还是NULL?另外,您是否使用来自dplyr的mutate?如果是这样,请使用dplyr::mutate(...)明确这一点,或者将此行添加到您的代码library(dplyr)。否则,您的代码将不适用于其他人。 -
谢谢,我编辑了请求以反映这些 cmets。缺失值为
NA。希望澄清
标签: r string for-loop missing-data dummy-variable