将多个列从一个data.frame复制到另一个

时间:2013-10-05 18:26:06

标签: r dataframe

是否有一种简单的方法可以让R自动将data.frame中的列复制到另一个?

我有类似的东西:

>DF1 <- data.frame(a=1:3, b=4:6)
>DF2 <- data.frame(c=-2:0, d=3:1)

我希望得到像

这样的东西
>DF1
   a b  c d
1 -2 4 -2 3
2 -1 5 -1 2
3  0 6  0 1

我通常会手工完成,如

DF1$c <- DF2$c
DF1$d <- DF2$d

只要我有很少的变量就可以了,但是在处理多个变量时它变得非常耗时且容易出错。有关如何有效地做到这一点的任何想法?这可能很简单,但我发誓我无法在Google上找到答案,谢谢!

2 个答案:

答案 0 :(得分:17)

您的示例的结果不正确,应该是:

> DF1$c <- DF2$c
> DF1$d <- DF2$d
> DF1
  a b  c d
1 1 4 -2 3
2 2 5 -1 2
3 3 6  0 1

然后cbind完全相同:

> cbind(DF1, DF2)
  a b  c d
1 1 4 -2 3
2 2 5 -1 2
3 3 6  0 1

答案 1 :(得分:10)

(我打算将此作为评论添加到Jilber现已删除但未删除的帖子。)可能更安全推荐类似

DF1 <- cbind(DF1, DF2[!names(DF2) %in% names(DF1)])