2013-10-05 4 views
4

Есть ли простой способ сделать R автоматически копировать столбцы из data.frame в другой?Копирование нескольких столбцов из одного файла 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

(я собирался добавить это в качестве комментария к Жильбер-х теперь удалена, а затем удалена.) Можете быть более безопасным, чтобы рекомендовать что-то вроде

DF1 <- cbind(DF1, DF2[!names(DF2) %in% names(DF1)]) 
Смежные вопросы