我是R的新手,面临这个问题(它可能是非常基本的,所以请原谅我)。我已经查看了左/右合并和数据。表合并,但没有成功。
Dataset1:
Fips County Date Result
21001 Adair 01-03-2004 0.008
21175 Morgan 11-21-2002 0.076
Dataset2:
Fips County Date Pre
21001 Adair 01-03-2004 2.08
21001 Adair 01-04-2004 0.076
21001 Adair 01-04-2004 4.76
21017 Bourbon 01-03-2004 0.067
21175 Morgan 11-21-2002 0.076
21175 Morgan 05-04-2004 1.54
21175 Morgan 07-04-2004 0.008
21175 Morgan 11-21-2006 0.076
Desired_output:
Fips County Date Result Pre
21001 Adair 01-03-2004 0.008 2.08
21175 Morgan 11-21-2002 0.076 0.076
这是我使用的代码:
Desired_output <- merge(Dataset1, Dataset2, by.x=c("Fips", "Date"), by.y=c("Fips", "Date"))
但是它没有给我想要的输出。它只是将两个数据集中的所有内容组合在一起吗?
任何帮助将不胜感激!
如果我理解问题这应该工作:
library(dplyr)
left_join(Dataset1, Dataset2, by=c("Fips", "County", "Date"))
这里有不同类型连接的描述:
您可以使用inner_join
来获得您想要的结果:
inner_join():包含x和y中的所有行。
代码:
Dataset1 <- read.table(text ="Fips County Date Result
21001 Adair 01-03-2004 0.008
21175 Morgan 11-21-2002 0.076", header = TRUE)
Dataset2 <- read.table(text = "Fips County Date Pre
21001 Adair 01-03-2004 2.08
21001 Adair 01-04-2004 0.076
21001 Adair 01-04-2004 4.76
21017 Bourbon 01-03-2004 0.067
21175 Morgan 11-21-2002 0.076
21175 Morgan 05-04-2004 1.54
21175 Morgan 07-04-2004 0.008
21175 Morgan 11-21-2006 0.076", header = TRUE)
library(dplyr)
inner_join(Dataset1, Dataset2)
#> Joining, by = c("Fips", "County", "Date")
#> Fips County Date Result Pre
#> 1 21001 Adair 01-03-2004 0.008 2.080
#> 2 21175 Morgan 11-21-2002 0.076 0.076
由reprex包(v2.0.1)创建于2022-07-16