我有很大的数据集,即两个数据框。并想要添加在另一个数据框中具有相同列名的值。我该如何设置代码?
df1
a b c
0 0 0
0 0 0
df2
a c d
1 1 0
0 1 0
我期望的是:
a b c
1 0 1
0 0 1
这意味着我负责保留 colnames df1,但值在 df2 中。谢谢您的帮助。祝你有美好的一天
最佳答案
- 与
data.frame
配合使用
data.frame(lapply(X = split.default(x = cbind(df1, df2),
f = c(names(df1), names(df2))),
FUN = rowSums))[names(df1)]
# a b c
#1 1 0 1
#2 0 0 1
- 适用于
data.frame
和matrix
nm = intersect(colnames(df1), colnames(df2))
nm1 = colnames(df1)[!colnames(df1) %in% nm]
m = cbind(df1[, nm1, drop = FALSE], df1[, nm, drop = FALSE] + df2[, nm, drop = FALSE])
colnames(m) = c(nm1, nm)
m[,colnames(df1)]
# a b c
#1 1 0 1
#2 0 0 1
#DATA
df1 = structure(list(a = c(0L, 0L), b = c(0L, 0L), c = c(0L, 0L)),
class = "data.frame",
row.names = c(NA, -2L))
df2 = structure(list(a = 1:0, c = c(1L, 1L), d = c(0L, 0L)),
class = "data.frame",
row.names = c(NA, -2L))
关于r - 如何添加具有相同名称的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55349343/