即使我的变量相同,为啥我的行不会合并?

Posted

技术标签:

【中文标题】即使我的变量相同,为啥我的行不会合并?【英文标题】:Why won't my rows merge, even though my variables are identical?即使我的变量相同,为什么我的行不会合并? 【发布时间】:2021-12-19 07:23:37 【问题描述】:

我有两个非常基本的数据集GVA 和Comptroller,我正在尝试根据地址和参与者年龄组合并它们,但实际上并没有加入观察结果。我想要 GVA 的参与者姓名和其他人的详细信息。

newmerge<-merge(Philadelphia_PA_Nonfatal_Shootings_Sheet_Jan_1_Sept_30_2021, export_89ce5a4e_f66a_4a10_8fdd_ee778a7e3d66, by=c("Address", "Participant Age Group"), all=TRUE)

这是我在与不匹配的行合并后得到的结果:

我已经检查了我的变量都是字符格式,以及其他常见的故障排除,所以欢迎任何建议。

【问题讨论】:

请提供一个包含数据和代码的最小示例。您可以使用dput() 发布您的数据 使用dput().. 添加一些相关的样本数据(即:没有图像!) 同意 MKR 和 Wimpel。顺便说一句,这是我见过的最长、最复杂的数据框名称。 This 就是为什么将数据发布为图像非常没有帮助。我们需要同时查看Philadelphia_PA_Nonfatal_Shootings_Sheet_Jan_1_Sept_30_2021export_89ce5a4e_f66a_4a10_8fdd_ee778a7e3d66。 (正如@www 所写 - 哇,哇!)哦,欢迎来到 SO! PS:如果你确定一切都是字符,我首先要检查的是前导和尾随空格。 谢谢大家,我尝试将数据集链接为谷歌表格/超链接。以后我会试试dput 【参考方案1】:

显而易见的已经指出了。不要使用图像来显示您的数据。

部分行不合并的原因是merge() 区分大小写。解决它的一种方法是在要合并的列上执行touppertolower,但另一种可能更简洁的方法是使用包fuzzyjoin

fuzzyjoin::stringdist_join(Philadelphia_PA_Nonfatal_Shootings_Sheet_Jan_1_Sept_30_2021, 
                           export_89ce5a4e_f66a_4a10_8fdd_ee778a7e3d66, 
                           by = c("Address", "Participant Age Group"), 
                           max_dist = 0, mode = "full", ignore_case = T)

【讨论】:

感谢您的回答!我尝试删除空格,但当然它区分大小写,我很傻。当我们说话时,我正在自学R(显然)。我也明白我不应该只放图片,我还想通过超链接公开我的数据。那是不可访问的吗? 视情况而定。例如,您的超链接指向 Excel 工作表,而不是数据框或数据表。其中一个表也没有标题,因此显然您必须采取一些步骤才能将这些数据正确导入 R。当您已经导入了两个数据框时,让受访者重新发明***有什么意义?礼貌比什么都重要

以上是关于即使我的变量相同,为啥我的行不会合并?的主要内容,如果未能解决你的问题,请参考以下文章

当我试图重写计算机上现有文件中的某些行时,为啥我的程序最后打印了 2 行相同的行? [复制]

熊猫合并具有相同值和相同索引的行

合并具有部分相同值的行

ClickHouse - CollapsingMergeTree 表引擎 - 记录不会合并,即使它们具有相同的列值和不同的符号(+1/-1)

即使我有 session_start(); 我的会话变量也不会传递到我的其他页面;在所有 3 页的开头。为啥是这样?

如何在Google表格中合并具有相同索引且具有不同值的行?