R 提供空数据集结果的合并函数

R 提供空数据集结果的合并函数,r,merge,R,Merge,我有两个数据集,一个有1359个可观测值,另一个有136个。两者都有相同的变量“city”和“state”,我已经确定城市和州的名称在两个数据集中写得完全相同。问题是,当我在R上使用merge函数时,它给了我一个空数据集 blm_pb <- merge(blm_df, pb1, by= c("city","state")) blm_pb问题在于列具有前导/后导空格。一个选项是首先使用trimws nm1 <- c("city&quo

我有两个数据集,一个有1359个可观测值,另一个有136个。两者都有相同的变量“city”和“state”,我已经确定城市和州的名称在两个数据集中写得完全相同。问题是,当我在R上使用merge函数时,它给了我一个空数据集

blm_pb <- merge(blm_df, pb1, by= c("city","state"))

blm_pb问题在于列具有前导/后导空格。一个选项是首先使用
trimws

nm1 <- c("city","state")
blm_df[nm1] <- lapply(blm_df[nm1], trimws)
pb1[nm1] <- lapply(pb1[nm1], trimws)
默认情况下,
合并
执行内部联接。如果我们想要得到一个完整的连接,其中包括两个数据集中
by
列的完整并集,它将在不匹配的地方显示
NA

blm_pb_full <- merge(blm_df, pb1, by= c("city","state"), all = TRUE)

blm\U PBU full请检查
名称(blm\U df)
名称(pb1)
。可能有超前/滞后的spacesHello@akrun,我检查:
名称(blm_df)
给出:“城市”“州”“TotalPop”“PovertyRate”和
名称(pb1)
返回:“城市”“州”“总计”。在这种情况下,这些列中可能没有匹配的值。默认情况下,
merge
内部连接是否可以检查
相交(粘贴(blm_df$city,blm_df$state),粘贴(pb1$city,pb1$state))
相交(粘贴(blm_df$city,blm_df$state),粘贴(pb1$city,pb1$state))
给出:字符(0)。奇怪的是,它没有找到匹配项,因为我可以在两个数据库中看到,例如city:Portland和state:Oregon谢谢你的帮助!现在它正在合并,但是有没有一种方法我仍然可以合并,但是没有匹配的观测值由NA放置在添加的新列中?@rauls_uuuu默认情况下,它是一个内部连接。您可以使用
all=TRUE
合并(blm_df,pb1,by=c(“城市”,“州”),all=TRUE)
返回默认为NA的不匹配项
blm_pb_full <- merge(blm_df, pb1, by= c("city","state"), all = TRUE)