我有两个数据集,一个有1359个可观测值,另一个有136个。两者都有相同的变量"城市"one_answers"州",我已经确信两个数据集中的城市和州名称完全相同。问题是当我在R上使用merge函数时,它给了我一个空的数据集
blm_pb <- merge(blm_df, pb1, by= c("city","state"))
问题是列有前导/滞后空间。一种选择是首先用trimws
删除空格
nm1 <- c("city","state")
blm_df[nm1] <- lapply(blm_df[nm1], trimws)
pb1[nm1] <- lapply(pb1[nm1], trimws)
现在,merge
代码应该可以使用
blm_pb <- merge(blm_df, pb1, by= c("city","state"))
默认情况下,merge
执行内部联接。如果我们想获得一个完整的联接,它包括来自两个数据集的两个by
列的并集,并且它将显示没有匹配的NA
blm_pb_full <- merge(blm_df, pb1, by= c("city","state"), all = TRUE)
如果我们需要左联接,请使用all.x = TRUE
,对于右联接,则使用all.y = TRUE