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))