首页 > 解决方案 > 如果数据框中缺少列,则添加列的整洁方法

问题描述

如果数据集中不存在,我正在寻找一种整洁的方法来添加缺失的列。例如,df1 不包含列“c”。

df1 <- data.frame(a=c(1:3, NA), b=c(NA,2:4))

所需的输出:

df1 <- data.frame(a=c(1:3, NA), b=c(NA,2:4), c=c(NA, NA, NA, NA))

标签: rtidyverse

解决方案


假设您不想覆盖该列,如果它已经存在于您的数据中,您可以使用add_column一个if条件来检查该列是否已经存在。

library(dplyr)

df1 <- data.frame(a=c(1:3, NA), b=c(NA,2:4))
if(!'c' %in% names(df1)) df1 <- df1 %>% add_column(c = NA)
df1

#   a  b  c
#1  1 NA NA
#2  2  2 NA
#3  3  3 NA
#4 NA  4 NA

推荐阅读