R 如何添加具有相同名称的列
我有大型数据集,即两个数据帧。并希望在另一个数据帧中添加具有相同列名的值。如何设置代码R 如何添加具有相同名称的列,r,multiple-columns,R,Multiple Columns,我有大型数据集,即两个数据帧。并希望在另一个数据帧中添加具有相同列名的值。如何设置代码 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和matrix 你说的“添加”到底是什么意思?对不起,是的,我的语法不好,对不起:D。我的意思是当它有相同的列名时,如何添加
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
和matrix
你说的“添加”到底是什么意思?对不起,是的,我的语法不好,对不起:D。我的意思是当它有相同的列名时,如何添加
value
。但是它必须像df1
那样排列colnames
必须像df1
那样排列但是值就像df2
第二个选项上的一个不同的旋转-替换(df1,nm,df1[nm]+df2[nm])
谢谢,但我必须首先纠正它nm=intersect(colnames,colnames)(df2))
@最近的邮件不能使用replace,因为它是NA值,它是矢量,如果它是矩阵,函数是什么?@d.b是的,我在csv
文件中找到了它,所以你能修复它吗?我会的glad@d.b是的,这是工作,谢谢顺便说一句,但我必须像df1一样安排ColName
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
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))