如何运行循环,将单独列表中的变量中的所有NA值设置为FALSE,将所有非NA值设为TRUE?
示例数据帧:
| var1 | var2 | var3 | var4 |
| --- | --- | --- | --- |
| name | email | NA | b|
| name | email | a| b|
| name | email | a| NA|
| name | email | NA| b|
| name | email | a| b|
| name | email | a| NA|
list.vars <- list("var3", "var4")
示例结果数据帧:
| var1 | var2 | var3 | var4 |
| --- | --- | --- | --- |
| name | email | FALSE| TRUE|
| name | email | TRUE| TRUE|
| name | email | TRUE| FALSE|
| name | email | FALSE| TRUE|
| name | email | TRUE| TRUE|
| name | email | TRUE| FALSE|
这行吗:
library(dplyr)
df %>% mutate(across(var3:var4, ~ ifelse(is.na(.), FALSE, TRUE)))
var1 var2 var3 var4
1 name email FALSE TRUE
2 name email TRUE TRUE
3 name email TRUE FALSE
4 name email FALSE TRUE
5 name email TRUE TRUE
6 name email TRUE FALSE
使用的数据:
df
var1 var2 var3 var4
1 name email <NA> b
2 name email a b
3 name email a <NA>
4 name email <NA> b
5 name email a b
6 name email a <NA>
假设您的数据帧称为df
for (v in list.vars){
df[[paste0(v,"_result")]] <- df[[v]] %>% is.na() %>% `!`
}