[R] merging

Gavin Simpson gavin.simpson at ucl.ac.uk
Tue May 30 20:08:10 CEST 2006


Dear List,

Given,

y <- matrix(c(0,1,1,1,0,0,0,4,4), ncol = 3, byrow = TRUE)
rownames(y) <- c("a","b","c")
colnames(y) <- c("1","2","3")
y
y2 <- y[2:3, ]
rownames(y2) <- c("x","z")
y2

how can I stop

merge(y, y2, all = TRUE, sort = FALSE)

squishing the extra rows? Ideally I want the same as:

rbind(y, y2)

in this case. This is specific example of situation where two data
matrices have same column variables and all I want is to stick the two
sets of rows together, but I have been using merge for cases such as the
one below, where the second matrix has extra column(s):

y3 <- matrix(c(0,1,1,1,0,0,0,4,4,5,6,7), ncol = 4, byrow = TRUE)
rownames(y3) <- c("d","e","f")
colnames(y3) <- c("1","2","3","4")
y3
merge(y, y3, all = TRUE, sort = FALSE)

We don't know before hand if the columns will match. But I see now that
even this doesn't work as I was expecting/thinking!

So I'm looking for a general way to merge two matrices such that the
number of rows in the merged matrix is nrow(mat1) + nrow(mat2) and the
number of columns in the merged matrix is length(unique(colnames(mat1),
colnames(mat2).

Is there a function in R to do this, or can someone suggest a way to
achieve this? My R version info is at the end.

Just to be clear, for the y, y3 example I want something like this
returned:

  1 2 3 4
a 0 1 1 NA
b 1 0 0 NA
c 0 4 4 NA
d 0 1 1 1
e 0 0 0 4
f 4 5 6 7

and for the y, y2 example, I want something like this returned:

  1 2 3
a 0 1 1
b 1 0 0
c 0 4 4
x 1 0 0
z 0 4 4

Many thanks,

Gav

> version
               _
platform       i686-pc-linux-gnu
arch           i686
os             linux-gnu
system         i686, linux-gnu
status         Patched
major          2
minor          3.0
year           2006
month          05
day            03
svn rev        37978
language       R
version.string Version 2.3.0 Patched (2006-05-03 r37978)
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
*  Note new Address, Telephone & Fax numbers from 6th April 2006  *
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Gavin Simpson
ECRC & ENSIS                  [t] +44 (0)20 7679 0522
UCL Department of Geography   [f] +44 (0)20 7679 0565
Pearson Building              [e] gavin.simpsonATNOSPAMucl.ac.uk
Gower Street                  [w] http://www.ucl.ac.uk/~ucfagls/cv/
London, UK.                   [w] http://www.ucl.ac.uk/~ucfagls/
WC1E 6BT.
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-help mailing list