我有一个数据框:
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中这样做,因为我在一个包含有限的环境中工作。
答案 0 :(得分:3)
我们可以使用setdiff
获取不在'df1'中的列名,并将它们分配给0
df1[setdiff(names(df2), names(df1))] <- 0