我有两个数据框,这两个框都包含33个伦敦行政区的数据。一个叫做temp2,另一个叫做key_indicators。两者都有一个名为“borough”的列,其中列出了自治市的名称。
如果我尝试基于“borough”列对这两个表进行内连接或合并,则会跳过名称中有空格的任何区(如“塔哈姆莱斯”或“泰晤士河上的金斯敦”)。
我尝试通过将两个表中第一个自治市的名称分别分配给变量'a‘和'b’来单独比较这些值;
> b <- key_indicators$Borough[1]
> str(a)
chr "Barking and Dagenham"
> str(b)
chr "Barking and Dagenham"
> a == b
[1] FALSE
我不能理解为什么这种比较是失败的?!我试过检查各种属性,但它们都是一样的,例如;
> summary(a)
Length Class Mode
1 character character
> summary(b)
Length Class Mode
1 character character
有没有人能给我一些建议,告诉我我可能忽略了什么?
发布于 2021-05-30 22:21:54
一种选择是删除列中的空格
temp2$Borough2 <- gsub("\\s+", "", temp2$Borough)
key_indicators$Borough2 <- gsub("\\s+", "", key_indicators$Borough)
然后在这些列上连接
或者就像评论中提到的@thelatemail一样,用一个空格替换任何空格字符会更好
temp2$Borough <- gsub("\\s+", " ", temp2$Borough)
发布于 2021-05-30 22:35:19
遵循akrun的建议。我们也可以使用stringr
包中的str_trim
来删除空格:
library(stringr)
temp2$Borough2 <- str_trim(temp2$Borough)
key_indicators$Borough2 <- str_tirm(key_indicators$Borough)
https://stackoverflow.com/questions/67766214
复制相似问题