如何在R中的不同数据框中添加具有相同名称的列

时间:2015-10-22 02:44:01

标签: r

我有两个不同列的数据框。 DataFrame1有8列,DataFrame2有6列。所有DataFrame2列名都在DataFrame1中。如何在两个DataFrame中添加具有相同名称的列,然后将其余列保留在新的DataFrame中。 我是R的新手,所以任何帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

我们使用intersect(&#39; nm1&#39;)获取常见的列名称,根据公共列对两个数据集进行子集,添加它,用添加的第一列替换第一列值(df1[nm1] <- ..)。我们也取代了&#39; df2&#39;使用上一步结果的常见列,从两个不是公共列的数据集创建一个新的data.frame。

 nm1 <- intersect(colnames(df1), colnames(df2))
 df1[nm1] <- df1[nm1]+df2[nm1]
 df2[nm1] <- df1[nm1]

 df3 <- cbind(df1[setdiff(colnames(df1), nm1)], df2[setdiff(colnames(df2), nm1)]) 

答案 1 :(得分:0)

我知道“仅限代码”的答案已被弃用,但这真的让人感到愤怒:

new_colname <- "newcol"
df1[[ new_colname ]] <- values
df2[[ new_colname ]] <- values