thanks a lot!
That is really a big help.

I tried this code;

x1 <- data.frame(category = sample(3, 10, r=TRUE), rnorm(10, 5, 2))
x2 <- data.frame(category = sample(3, 10, r=TRUE), rnorm(10, 8, 2))
        
x1$id <- unlist(with(x1, tapply(x1[,2], x1[,1], seq)))
x2$id <- unlist(with(x2, tapply(x2[,2], x2[,1], seq)))
subset(merge(x1, x2, by = c("category", "id"), all = T), select = -id)


But the code sometimes shows this error message;

Error in `$<-.data.frame`(`*tmp*`, "id", value = c(1L, 2L, 3L, 4L,  
5L,  :
   replacement has 17 rows, data has 10





Am 18.06.2009 um 03:32 schrieb Henrique Dallazuanna:

> Yes, try this:
>
> x1$id <- unlist(with(x1, tapply(x, x, seq)))
> x2$id <- unlist(with(x2, tapply(x, x, seq)))
> subset(merge(x1, x2, by = c("x", "id"), all = T), select = -id)
>
> On Wed, Jun 17, 2009 at 10:24 PM, Martin Batholdy <batho...@googlemail.com 
> > wrote:
>> Is because the category is not unique, then merge are replicate the  
>> values.
>
>
> Yeah, ok.
>
> But that is exactly my problem with the actual data set, I don't  
> want "new" rows;
>
> If I have;
>
> x1
> 1     4
> 1     3
> 1     6
> 2     9
> 2     2
>
>
> x2
> 1     -3
> 1     -7
> 2     -3
> 2     -2
>
>
>
> I want this data.frame;
>
> x1.x2
> 1     4       -3
> 1     3       -7
> 1     6       NA
> 2     9       -3
> 2     2       -2
>
> or
>
> x1.x2
> 1     4       -3
> 1     3       -7
> 2     9       -3
> 2     2       -2
>
>
>
>
> It does not matter to me if the rows are merged like;
>
> 1     4       -3
> 1     3       -7
>
> or
>
> 1     4       -7
> 1     3       -3
>
>
>
>
> can I also do something like that with merge() ?
>
>
>
> Am 18.06.2009 um 03:18 schrieb Henrique Dallazuanna:
>
>> Is because the category is not unique, then merge are replicate the  
>> values.
>>
>> Try this example:
>>
>> x <- data.frame(category=1:10, rnorm(10))
>> y <- data.frame(category=3:12, rnorm(10))
>>
>> merge(x, y, by = "category")
>> merge(x, y, by="category", all = T)
>>
>>
>> On Wed, Jun 17, 2009 at 10:04 PM, Martin Batholdy <batho...@googlemail.com 
>> > wrote:
>> I have tried to replicate the example on the help page;
>>
>>
>> x <- data.frame(category = sample(3, 10, r=TRUE), rnorm(10, 5, 2))
>> y <- data.frame(category = sample(3, 10, r=TRUE), rnorm(10, 8, 2))
>>
>> merge(x, y, by = "category")
>>
>>
>>
>> When I do that, I get a data.frame with 28 rows instead of 10.
>>
>> What am I doing wrong?
>>
>>
>>
>> Am 18.06.2009 um 02:42 schrieb David Winsemius:
>>
>>
>> Red the help page for merge:
>>
>> ?merge
>>
>>
>> On Jun 17, 2009, at 8:33 PM, Martin Batholdy wrote:
>>
>> hi,
>>
>>
>> I have two data.frames each with two columns;
>>
>>
>> x1
>>
>> 1       4
>> 1       3
>> 1       6
>> 2       9
>> 2       2
>> 2       5
>> 3       6
>> 3       7
>> 3       4
>>
>>
>> x2
>>
>> 1       -3
>> 1       -7
>> 2       -3
>> 2       -2
>> 2       -8
>> 3       -1
>> 3       -2
>> 3       -1
>>
>> now I want to merge this data.frames to one data.frame.
>>
>> The problem is, that sometimes there is a different number of  
>> elements per category.
>> (like above x1 has 3 values for the value 1 in the first row, but  
>> x2 has only 2 values for the value 1 in the first row).
>>
>> Is there an easy way to merge this two data.frames by deleting the  
>> rows that only one data.frame "has".
>> In the example, that resulting data.frame would be the data.frame  
>> x1 and x2 except the row 3 of data.frame x1.
>>
>> thanks for any suggestions!
>>
>> ______________________________________________
>> 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.
>>
>> David Winsemius, MD
>> Heritage Laboratories
>> West Hartford, CT
>>
>>
>> ______________________________________________
>> 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.
>>
>>
>>
>> -- 
>> Henrique Dallazuanna
>> Curitiba-Paraná-Brasil
>> 25° 25' 40" S 49° 16' 22" O
>
>
>
>
> -- 
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O


        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to