[R] Impossible to merge with a zero rows data frame?
Petr Pikal
petr.pikal at precheza.cz
Wed Sep 27 15:41:12 CEST 2006
Hi
you have two options:
change the source code for merge
or use some modified function like
my.merge <- function(x,y, ...) if(all(dim(x)[1]>0, dim(y)[1]>0))
merge(x,y) else print ("No merge or whatever action which is
suitable")
HTH
Petr
On 27 Sep 2006 at 11:55, Bonfigli Sandro wrote:
Date sent: Wed, 27 Sep 2006 11:55:44 +0200
From: "Bonfigli Sandro" <bonfigli at inmi.it>
To: r-help at stat.math.ethz.ch
Subject: [R] Impossible to merge with a zero rows data frame?
> I'm trying to merge two data frames. One of them is a zero rows data
> frame. I'm using the merge parameter 'all.x = TRUE' so I'd expect to
> obtain all the rows of x. In fact the merge help says:
>
> all.x: logical; if 'TRUE', then extra rows will be added to the
> output, one for each row in 'x' that has no matching row in
> 'y'. These rows will have 'NA's in those columns that are
> usually filled with values from 'y'.
>
> To let you test the problem here is some code:
>
> > L3 <- LETTERS[1:3]
> > (d <- data.frame(cbind(x=1, y=1), fac=sample(L3, 1, repl=TRUE))) e
> > <- d[-1,]
>
> so now we have that:
> > e
> [1] x y fac
> <0 rows> (or 0-length row.names)
>
> here is the merge:
> > merge(d, e, by.x = c("x"), by.y = c("x"), all.x = TRUE)
>
> I'd expect something like:
> x y.x fac.x y.y fac.y
> 1 1 1 B NA NA
> instead of:
> Error in merge.data.frame(d, e, by.x = c("x"), by.y = c("x"), all.x =
> TRUE) :
> no row to correspond
> (I'm traslating the error message, so it could be a little different)
>
> My questions are:
> Is there a way to obtain my desired result? In the context in which
> I'd like to use the code the second data frame is the result of a
> query and a lot of overwork would be added if I have to check if the
> dataframe is a zero rows one BEFORE the merge (in fact I do a sequence
> of several merge) Is this behaviour of the merge command correct? Why
> did the developers choose it?
>
> P.S.: I tested this code both in R 2.3.0 and in 2.3.1
>
> Thank you in advance.
> Sandro Bonfigli
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
Petr Pikal
petr.pikal at precheza.cz
More information about the R-help
mailing list