是否有一种简单的方法可以让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上找到答案,谢谢!
答案 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)])