即使我的变量相同,为啥我的行不会合并?
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_2021
和export_89ce5a4e_f66a_4a10_8fdd_ee778a7e3d66
。 (正如@www 所写 - 哇,哇!)哦,欢迎来到 SO! PS:如果你确定一切都是字符,我首先要检查的是前导和尾随空格。
谢谢大家,我尝试将数据集链接为谷歌表格/超链接。以后我会试试dput
【参考方案1】:
显而易见的已经指出了。不要使用图像来显示您的数据。
部分行不合并的原因是merge()
区分大小写。解决它的一种方法是在要合并的列上执行toupper
或tolower
,但另一种可能更简洁的方法是使用包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)