2013-10-05 196 views
4

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

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

回答

14

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

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

(我要加入这个作为Jilber的评论现在删除,然后取消删除后。)可能会更安全地推荐类似

DF1 <- cbind(DF1, DF2[!names(DF2) %in% names(DF1)]) 
相关问题