dplyr 的 2 个 dfs 的 left_join 导致具有所有 NA 的 num 列

Posted

技术标签:

【中文标题】dplyr 的 2 个 dfs 的 left_join 导致具有所有 NA 的 num 列【英文标题】:dplyr's left_join of 2 dfs leads to num column with all NAs 【发布时间】:2022-01-08 22:49:54 【问题描述】:

我正在使用 RStudio 1.4.1717。

我想合并 2 个 dfs (WZ & PR);两者都是从 .csv 文件导入的。 他们的数据如下:

str(WZ) 'data.frame':1547 obs。 3 个变量:

ID : 整数 879 1235 1480 1936 2271 2717 2780 2900 3016 3675 ​​...

清算:日期,格式:“2021-01-07”“2021-08-23”...

PTBeginn:日期,格式:“2021-05-19” NA ...

str(PR2) 'data.frame':862 obs。 2 个变量:

ID : 整数 657500 667148 668036 676333 692171 692186 692586 693638 693641 693646 ...

分数:num 37912 15701 76 1143904 24056 ...

当我想使用以下代码执行左连接时

WZ_PR <-PR2 %>% left_join(WZ, by = 'ID')

“分数”向量仅显示 NA

str(WZ_PR) 'data.frame':1547 obs。 4个变量: ID : 整数 879 1235 1480 1936 2271 2717 2780 2900 3016 3675 ​​...

清算:日期,格式:“2021-01-07”“2021-08-23”...

PTBeginn:日期,格式:“2021-05-19” NA ...

分数:num NA NA NA NA NA NA NA NA NA NA ...

有人知道我做错了什么吗?

最好的祝愿, 马库斯

【问题讨论】:

这是因为您在WZ中的ID与PR中的ID不匹配。如果按“ID”合并,则两个数据集之间的“ID”值应该相等。 方便那些想要通过reproducible example 提供帮助的人。作为 R 用户,reprex package 非常适合执行此操作。 很抱歉浪费了您的时间。确实,ID 不匹配。这本身很奇怪,但我必须自己调查一个问题。非常感谢您的帮助!! 【参考方案1】:

您确定您在 WZ 和 PR2 中的 ID 相同吗?输出表明你没有,因为这个分数是 NA

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 很抱歉浪费了您的时间。确实,ID 不匹配。这本身很奇怪,但我必须自己调查一个问题。非常感谢您的帮助!!

以上是关于dplyr 的 2 个 dfs 的 left_join 导致具有所有 NA 的 num 列的主要内容,如果未能解决你的问题,请参考以下文章

《实习日记》| 7月20日 R语言笔记——dplyr

dplyr 均值的错误结果

dplyr:子分组(group_by)数据帧上的colSums:优雅

R----dplyr包介绍学习

dplyr 创建一个具有其他列的复杂用户定义函数的新列

Jupyter如何在彼此旁边绘制2个dfs [重复]