r - 使用 dplyr R 中的 mutate with across 将不存在的列添加到数据框

标签 r dataframe dplyr

我有一个列名列表,如下所示,

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/

相关文章:

R:将数据框中的所有列相乘

sql - 在不使用 R 内存的情况下从 dplyr 对象创建新的 SQL 表

python - 将 SpaCy 的 EntityRecognizer 应用于 Pandas 数据框中的列

r - 使用 dplyr 过滤多列

r - 如何在R中查找和求和多列

r - 在 R 中使用矢量多边形提取光栅像素值

R:如何写出一个 data.frame 以便我可以将它粘贴到 SO 中供其他人阅读?

python - 如何将程序的输出重定向到数据框

python - 创建具有给定行数和重复值的数据框

r - 在 groupby 中分配楼层日期失败