为R中数据框的每一行返回包含缺失(NA)数据的列名列表 [英] Return list of column names with missing (NA) data for each row of a data frame in R
本文介绍了为R中数据框的每一行返回包含缺失(NA)数据的列名列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
ID Var1 Var2 Var3 Var4 Var5
1 10 T NA 2 NA
2 15 F 50 2 NA
3 12 NA 41 2 NA
4 NA NA NA 1 NA
5 NA F NA NA NA
...
我希望得到如下所示的输出:
ID Missing Variables
1 Var3, Var5
2 Var5
3 Var2, Var5
4 Var1, Var2, Var3, Var5
5 Var1, Var3, Var4, Var5
...
我搞不懂如何为每个缺失的数据条目返回列名。我知道您可能可以使用for循环来做这样的事情,但除此之外,我有点迷路了。如有任何帮助,我们不胜感激!
推荐答案
以下是tidyverse
解决方案。
df <- read_table("
ID Var1 Var2 Var3 Var4 Var5
1 10 T NA 2 NA
2 15 F 50 2 NA
3 12 NA 41 2 NA
4 NA NA NA 1 NA
5 NA F NA NA NA", col_names = TRUE)
library(dplyr)
library(tidyr)
df %>%
mutate(across(starts_with("var"), is.na)) %>% # replace all NA with TRUE and else FALSE
pivot_longer(-ID, names_to = "var") %>% # pivot longer
filter(value) %>% # remove the FALSE rows
group_by(ID) %>% # group by the ID
summarise(`Missing Variables` = toString(var)) # convert the variable names to a string column
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 5 x 2
ID `Missing Variables`
<dbl> <chr>
1 1 Var3, Var5
2 2 Var5
3 3 Var2, Var5
4 4 Var1, Var2, Var3, Var5
5 5 Var1, Var3, Var4, Var5
这篇关于为R中数据框的每一行返回包含缺失(NA)数据的列名列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文