【发布时间】:2021-07-03 07:07:07
【问题描述】:
如何运行循环以将单独列表中的变量中的所有 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|
【问题讨论】:
-
dplyr::mutate(across(list_here, ~ifelse(is.na(.),1,0))未经过测试。 -
您能否与
dput共享您的数据以获得更好的重现性?你的数据是NA还是chr? -
如果字符:
df %>% mutate(across(unlist(list.vars), ~ifelse(grepl("NA",.),FALSE,TRUE)))