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 at ontargettek.com> Sent: Saturday, March 19, 2022 8:20 PM To: reichmanj at sbcglobal.net Cc: r-help at 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/merge 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 at 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.
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 at ontargettek.com> > Sent: Saturday, March 19, 2022 8:20 PM > To: reichmanj at sbcglobal.net > Cc: r-help at 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/merge > > > 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 at 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.
Then show your code so we can focus on what you haven't yet figured out. Have you read the examples in the merge help page? On March 19, 2022 6:23:02 PM PDT, Jeff Reichman <reichmanj at sbcglobal.net> 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 at ontargettek.com> >Sent: Saturday, March 19, 2022 8:20 PM >To: reichmanj at sbcglobal.net >Cc: r-help at 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/merge > > >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 at 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 at 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.
Jeff This seems to work df3 <- merge(df1, df2, all = TRUE) When I use either of the by.x, by.y or all.x, all.y arguments I get really weard results. Simply using the code about appears to work thus far. -----Original Message----- From: Jeff Newmiller <jdnewmil at dcn.davis.ca.us> Sent: Saturday, March 19, 2022 8:51 PM To: reichmanj at sbcglobal.net; Jeff Reichman <reichmanj at sbcglobal.net>; 'Tom Woolman' <twoolman at ontargettek.com> Cc: r-help at r-project.org Subject: Re: [R] Combining data.frames Then show your code so we can focus on what you haven't yet figured out. Have you read the examples in the merge help page? On March 19, 2022 6:23:02 PM PDT, Jeff Reichman <reichmanj at sbcglobal.net> 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 at ontargettek.com> >Sent: Saturday, March 19, 2022 8:20 PM >To: reichmanj at sbcglobal.net >Cc: r-help at 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/merg >e > > >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 at 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 at 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.