如何从列表中向R dataframe添加多个列

时间:2017-12-14 13:23:16

标签: r dataframe

我有一个数据框:

df1

a b c
1 1 0
1 1 1
1 1 1

df2

a b c d e f
1 1 0 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
2 2 2 2 2 2

如何向来自df1 df2的{​​{1}}添加新列?得到:

df1

我试过了:

df2

a b c d e f
1 1 0 0 0 0
1 1 1 0 0 0
1 1 1 0 0 0

但这只是给了:

columns_toadd <- colnames(df1)[!(colnames(df1) %in% colnames(df2))]

for (i in 1:length(columns_toadd)){
  df$columns_toadd[[i]] <- 0
}

我想在base R中这样做,因为我在一个包含有限的环境中工作。

1 个答案:

答案 0 :(得分:3)

我们可以使用setdiff获取不在'df1'中的列名,并将它们分配给0

df1[setdiff(names(df2), names(df1))] <- 0