R 基于多列的匹配行合并两个数据帧
下面是我试图合并R 基于多列的匹配行合并两个数据帧,r,R,下面是我试图合并索赔人和unemp的两个数据集的摘要和结构,我可以在这里和 在dim(m)的输出中,结果数据帧中有0行。所有6960行应相互唯一匹配 为了验证这两个数据帧是否具有“County”、“Month”和“Year”三列的唯一组合,我在数据帧中对这些列进行了重新排序和重新排列,如下所示: a <- claimants[ order(claimants[,"County"], claimants[,"Month"], claimants[,"Year"]), ] b <- u
索赔人
和unemp
的两个数据集的摘要和结构,我可以在这里和
在dim(m)
的输出中,结果数据帧中有0行。所有6960行应相互唯一匹配
为了验证这两个数据帧是否具有“County”、“Month”和“Year”三列的唯一组合,我在数据帧中对这些列进行了重新排序和重新排列,如下所示:
a <- claimants[ order(claimants[,"County"], claimants[,"Month"], claimants[,"Year"]), ]
b <- unemp[ order(unemp[,"County"], unemp[,"Month"], unemp[,"Year"]), ]
b[2:4] <- b[c(2,4,3)]
a[2:4] %in% b[2:4]
[1] TRUE TRUE TRUE
我遗漏了一些东西,不知道是什么,希望您能帮助我理解这一点,我知道我不必按三列重新排列行来运行
merge
R应该识别匹配的行并合并不匹配的列。索赔人df的县都是大写的,unemp df用小写字母表示
我在读取数据时使用了选项(stringsAsFactors=FALSE)。有几条建议将X列放在这两个列中,它似乎没有什么用处
options(stringsAsFactors = FALSE)
claims <- read.csv("claims.csv",header=TRUE)
claims$X <- NULL
unemp <- read.csv("unemp.csv",header=TRUE)
unemp$X <- NULL
unemp$County <- toupper(unemp$County)
m <- inner_join(unemp, claims)
dim(m)
# [1] 6960 8
选项(stringsAsFactors=FALSE)
索赔索赔人df的县全部大写,unemp df的县全部小写
我在读取数据时使用了选项(stringsAsFactors=FALSE)。有几条建议将X列放在这两个列中,它似乎没有什么用处
options(stringsAsFactors = FALSE)
claims <- read.csv("claims.csv",header=TRUE)
claims$X <- NULL
unemp <- read.csv("unemp.csv",header=TRUE)
unemp$X <- NULL
unemp$County <- toupper(unemp$County)
m <- inner_join(unemp, claims)
dim(m)
# [1] 6960 8
选项(stringsAsFactors=FALSE)
阿拉米达索赔!=阿拉米达阿拉米达!=阿拉米达
> m <- inner_join(unemp[2:8], claimants[2:5])
Joining, by = c("County", "Year", "Month")
> dim(m)
[1] 0 8
options(stringsAsFactors = FALSE)
claims <- read.csv("claims.csv",header=TRUE)
claims$X <- NULL
unemp <- read.csv("unemp.csv",header=TRUE)
unemp$X <- NULL
unemp$County <- toupper(unemp$County)
m <- inner_join(unemp, claims)
dim(m)
# [1] 6960 8