首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列值包含空格的情况下,联接是否不匹配?

列值包含空格的情况下,联接是否不匹配?
EN

Stack Overflow用户
提问于 2021-05-31 06:15:43
回答 2查看 44关注 0票数 3

我有两个数据框,这两个框都包含33个伦敦行政区的数据。一个叫做temp2,另一个叫做key_indicators。两者都有一个名为“borough”的列,其中列出了自治市的名称。

如果我尝试基于“borough”列对这两个表进行内连接或合并,则会跳过名称中有空格的任何区(如“塔哈姆莱斯”或“泰晤士河上的金斯敦”)。

我尝试通过将两个表中第一个自治市的名称分别分配给变量'a‘和'b’来单独比较这些值;

代码语言:javascript
运行
复制
    > b <- key_indicators$Borough[1]
    > str(a)
     chr "Barking and Dagenham"
    > str(b)
     chr "Barking and Dagenham"
    > a == b
    [1] FALSE

我不能理解为什么这种比较是失败的?!我试过检查各种属性,但它们都是一样的,例如;

代码语言:javascript
运行
复制
    > summary(a)
       Length     Class      Mode 
            1 character character 
    
    > summary(b)
       Length     Class      Mode 
            1 character character 

有没有人能给我一些建议,告诉我我可能忽略了什么?

EN

回答 2

Stack Overflow用户

发布于 2021-05-31 06:21:54

一种选择是删除列中的空格

代码语言:javascript
运行
复制
temp2$Borough2 <- gsub("\\s+", "", temp2$Borough)
key_indicators$Borough2 <- gsub("\\s+", "", key_indicators$Borough)

然后在这些列上连接

或者就像评论中提到的@thelatemail一样,用一个空格替换任何空格字符会更好

代码语言:javascript
运行
复制
temp2$Borough <- gsub("\\s+", " ", temp2$Borough)
票数 4
EN

Stack Overflow用户

发布于 2021-05-31 06:35:19

遵循akrun的建议。我们也可以使用stringr包中的str_trim来删除空格:

代码语言:javascript
运行
复制
library(stringr)
temp2$Borough2 <- str_trim(temp2$Borough)
key_indicators$Borough2 <- str_tirm(key_indicators$Borough)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67766214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档