[R] Combining data.frames

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Sun Mar 20 13:22:08 CET 2022


Hello,

The two merge below give identical results.
Maybe there was something in your R session?


df3 <- merge(df1, df2, by = c("date", "geo_hash" ), all = TRUE)
df3b <- merge(df1, df2, all = TRUE)
identical(df3, df3b)
#[1] TRUE

Hope this helps,

Rui Barradas

Às 02:05 de 20/03/2022, Jeff Reichman escreveu:
> Ok this seems to work correctly
> 
> df1 <- data.frame(date = as.factor(c("2021-1-1","2021-1-1","2021-1-1","2021-1-1","2021-1-1",
>                             "2021-1-2","2021-1-2","2021-1-3","2021-1-3","2021-1-3",
>                             "2021-1-4")),
>                    geo_hash = as.factor(c("abc123","abc123","abc456","abc789","abc246","abc123",
>                                 "asd123","abc789","abc890","abc123","z12345")),
>                    ad_id = as.factor(c("a12345","b12345","a12345","a12345","c12345",
>                              "b12345","b12345","a12345","b12345","a12345","a12345")))
> df2 <- data.frame(date = as.factor(c("2021-1-1","2021-1-1","2021-1-2","2021-1-3","2021-1-3","2021-1-4")),
>                    geo_hash = as.factor(c("abc123","abc456","abc123","abc789","abc890","w12345")),
>                    event = as.factor(c("shoting","ied","protest","riot","protest","killing")))
> 
> df1
> df2
> 
> #df3 <- merge(df1, df2, all = TRUE)
> df3 <- merge(df1, df2, by = c("date", "geo_hash" ), all = TRUE)
> df3
> 
> -----Original Message-----
> From: Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
> Sent: Saturday, March 19, 2022 8:55 PM
> To: reichmanj using sbcglobal.net; Jeff Reichman <reichmanj using sbcglobal.net>; 'Tom Woolman' <twoolman using ontargettek.com>
> Cc: r-help using r-project.org
> Subject: Re: [R] Combining data.frames
> 
> by = c("date", "geo_hash" )
> 
> On March 19, 2022 6:31:19 PM PDT, Jeff Reichman <reichmanj using sbcglobal.net> wrote:
>> Yes I'm reading that presently
>>
>> The closest I've gotten has been
>>
>> df3 <- merge(df1, df2, all = TRUE)
>>
>> -----Original Message-----
>> From: Tom Woolman <twoolman using ontargettek.com>
>> Sent: Saturday, March 19, 2022 8:27 PM
>> To: reichmanj using sbcglobal.net
>> Cc: r-help using r-project.org
>> Subject: Re: [R] Combining data.frames
>>
>> You can also do "SQL-like" joins in the tidyverse with dplyr.
>>
>>
>> On 2022-03-19 21:23, Jeff Reichman wrote:
>>> Evening Tom
>>>
>>> Yest I've been playing with the merge function.  But haven't been
>>> able to achieve what I need. Could maybe the way to to and it might
>>> be my syntax
>>>
>>> -----Original Message-----
>>> From: Tom Woolman <twoolman using ontargettek.com>
>>> Sent: Saturday, March 19, 2022 8:20 PM
>>> To: reichmanj using sbcglobal.net
>>> Cc: r-help using r-project.org
>>> Subject: Re: [R] Combining data.frames
>>>
>>> Have you looked at the merge function in base R?
>>>
>>> https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/me
>>> r
>>> ge
>>>
>>>
>>> On 2022-03-19 21:15, Jeff Reichman wrote:
>>>> R-Help Community
>>>>
>>>> I'm trying to combine two data.frames which each containing 10
>>>> columns of which they each share two common fields. Here are two
>>>> small test datasets.
>>>>
>>>> df1 <- data.frame(date =
>>>> c("2021-1-1","2021-1-1","2021-1-1","2021-1-1","2021-1-1",
>>>>
>>>> "2021-1-2","2021-1-2","2021-1-3","2021-1-3","2021-1-3"),
>>>>                    geo_hash =
>>>> c("abc123","abc123","abc456","abc789","abc246","abc123",
>>>>                                 "asd123","abc789","abc890","abc123"),
>>>>                    ad_id =
>>>> c("a12345","b12345","a12345","a12345","c12345",
>>>>
>>>> "b12345","b12345","a12345","b12345","a12345"))
>>>> df2 <- data.frame(date =
>>>> c("2021-1-1","2021-1-1","2021-1-2","2021-1-3","2021-1-3"),
>>>>                    geo_hash =
>>>> c("abc123","abc456","abc123","abc789","abc890"),
>>>>                    event =
>>>> c("shoting","ied","protest","riot","protest"))
>>>>
>>>> I'm trying to combine them such that I get a combined data.frames
>>>> such as
>>>>
>>>> date		geo_hash	ad_id		event
>>>> 1/1/2021	abc123		a12345		shoting
>>>> 1/1/2021	abc123		b12345
>>>> 1/1/2021	abc456		a12345		ied
>>>> 1/1/2021	abc789		a12345
>>>> 1/1/2021	abc246		c12345
>>>>
>>>> Jeff
>>>>
>>>> ______________________________________________
>>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>> 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.
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
> 
> --
> Sent from my phone. Please excuse my brevity.
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.



More information about the R-help mailing list