我有一个列名列表,如下所示,
cols <- c('grade', 'score', 'status')
如果数据框在 cols 向量中没有任何列,我想使用 mutate 和 across 将该列(值为 NA)添加到数据框。如何做到这一点?
最佳答案
基础
解决方案:
df[setdiff(cols, names(df))] <- NA
此命令可适用于管道:
df %>%
`[<-`(, setdiff(cols, names(.)), NA)
# id score grade status
# 1 1 94 NA NA
# 2 2 98 NA NA
# 3 3 93 NA NA
# 4 4 82 NA NA
# 5 5 89 NA NA
数据
set.seed(123)
df <- data.frame(id = 1:5, score = sample(80:100, 5))
关于r - 使用 dplyr R 中的 mutate with across 将不存在的列添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73369426/