Hi:

On Thu, May 27, 2010 at 10:26 PM, Kang Min <ngokangmin@gmail.com> wrote:

> Hi,
>
> I have 2 dataframes of unequal length, and I would like to match a
> factor to them so that both dataframes will have the same number of
> rows.
>
> example:
> # create the 2 dataframes with unequal length
> data1 <- data.frame(letters, 1:26)[-c(5,10,19:21),]
> data2 <- data.frame(letters, 1:26)[-c(6,9,15:18),]
>

If this is your real problem, then an easy thing to do is

    data1 <- data2 <- data.frame(letters[1:26])
    data1[c(5,10,19:21), ] <- NA
    data2[c(6, 9, 15:18), ] <- NA
    data3 <- cbind(data1, data2)
    names(data3, c('lett1', 'lett2'))
    data3

However, I suspect this is not your real problem, so let's add a variable to
each of the data frames you posted and try again:

data1 <- data.frame(letters, 1:26)[-c(5,10,19:21),]
data2 <- data.frame(letters, 1:26)[-c(6,9,15:18),]

data1$x <- rpois(nrow(data1), 10)
data2$y <- rpois(nrow(data2), 5)

# Now merge data1 and data2:
(data3 <- merge(data1, data2, all = TRUE))

   letters X1.26  x  y
1        a     1  7  1
2        b     2 13  3
3        c     3 10  5
4        d     4  4  9
5        e     5 NA  4
6        f     6 10 NA
7        g     7 15  4
8        h     8 10  6
9        i     9 12 NA
10       j    10 NA  3
11       k    11  8  6
12       l    12 12  3
13       m    13 10  3
14       n    14  7  8
15       o    15  6 NA
16       p    16  8 NA
17       q    17  6 NA
18       r    18  4 NA
19       s    19 NA  2
20       t    20 NA  6
21       u    21 NA  4
22       v    22 12  6
23       w    23 10  3
24       x    24  7  8
25       y    25  9  6
26       z    26 15  7

To get rid of the second column, set data3[, 2] <- NULL.

HTH,
Dennis


> data2a <- match(data1[,1], data2[,1])
> data2b <- data2[data2a,]
>
> When I match data1 to data2, and combine the data2a vector to the
> original data2, I'm still missing some rows. I need to get the 26
> rows, and preferably with the first column displaying all the levels.
> In data2b the mismatches show up as NA in the whole row.
>
> Thanks.
> Kang Min
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]

