[英]better way to create dummy variables with NA- trying to improve coding I can already do poorly
我有一个回答调查问题的 df,其中 df$Q57 是五个答案之一:
我想创建一个虚拟变量,其中:
我知道如何做到这一点的最好方法是使用一系列 ifelse 命令:
df$Q57_dummy <- ifelse(df$Q57 == "I would never install water control structures", 0, 1)
df$Q57_dummy <- ifelse(df$Q57 == "", NA, df$Q57_dummy)
table(df$Q57_dummy , useNA = "always")
这有效,但我觉得有更简洁的方法可以做到这一点,我想知道是否有人有建议,因为我将不得不重新编码结果超过 1,0,NA 的调查答案。 谢谢!
tidyverse
方法:
df %>%
mutate(Q57_dummy = case_when(
Q57 == "" ~ NA,
Q57 == "I would never do this" ~ FALSE,
TRUE ~ TRUE # this is the else condition
))
您可以根据您喜欢的代码风格对 else 条件采取几种不同的方法。 以上工作,但你也可以用stringr
做到这stringr
:
str_detect(Q57, "I will do this") ~ TRUE
或手动输入选项:
Q57 %in% c("I will do this in five years",...) ~ TRUE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.