8

有没有一种简单的方法可以让 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

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

4

2 回答 2

23

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

> 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
于 2013-10-05T18:27:32.893 回答
12

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

DF1 <- cbind(DF1, DF2[!names(DF2) %in% names(DF1)])
于 2013-10-05T18:33:51.367 回答