Как объединить два фрейма данных с разными размерами - PullRequest
4 голосов
/ 25 октября 2011

Я работаю над двумя фреймами данных с разными размерами.

matA : col1 col2 col3
row1   aa    abc   123
row2   cc    dfg   455
row3   ee    efg   345

matB : col1 col4 col5
row1   aa    a1   b1
row2   cc    a2   b2
row3   dd    a3   b3
row4   ee    a4   b4

dim(matA) : 2000 * 3
dim(matB) : 4000 * 3


matC : col1 col2 col3  col4 col5
row1 : aa   abc  123   a1    b1
row2 : cc   dfg  455   a2    b2
row3 : dd   efg  345   a3    b3
row4 : ee   NA   NA    a4    b4

Я бы слил два в комбинированный мат (matC), но размер равен большему мату (здесь matB), который некоторые изнесопоставленные строки с mat1 должны быть просто пустыми или NA в matC.

Хотите знать, как объединить два фрейма данных?

Ответы [ 2 ]

9 голосов
/ 25 октября 2011

(непроверенная!) Прочитайте ?merge более внимательно ... обращая особое внимание на аргумент all.

merge(matA,matB,by="col1",all=TRUE)

Технически (а) это кадры данных, а не матрицы (б) by="col1" здесь не требуется.

0 голосов
/ 27 октября 2011

Пожалуйста, перейдите на

http://www.dr -spiess.de / Rscripts.html

и посмотрите измененные универсальные версии cbind, rbind и data.frame (cbind.na, rbind.na и data.frame.na), которые связывают фреймы / матрицы данных неравной длины, автоматически заполняя NA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...