R语言 为什么unique()不拾取一些相同的行?

z9ju0rcb  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(132)

我正在处理一个大型的事件日志数据集,如下所示:
| 时间|用户标识|地点|键|版本|
| - ------|- ------|- ------|- ------|- ------|
| 2023年2月13日06时28分54秒|小行星30375|学校|碘-422-脱氧核糖核酸|二○二三|
| 2023年2月13日06时24分42秒|小行星47127|学校|wjes-wtpi-字节2rl0|二○二三|
| 2023年2月13日06:18:14|小行星67491|工作|8公斤7-图6-伊海克什|二○二三|
| 2023年2月13日06:03:10|小行星36870|家|9xbs-p5hy-envlb8h|二○二二|
| 2023年2月13日05时58分24秒|小行星14222|学校|氧杂环丁烷|二○二二|
其中:

  • 时间是POSIX变量
  • user_id和版本是变量数
  • place和key是字符变量

数据集中不应该有相同的行,所以作为清理脚本的一部分,我使用unique()来捕获和删除重复的行,这是删除一些重复的行,而不是全部,看起来每次都是丢失相同的重复行。
是什么原因导致 * 某些 * 重复行未被删除?
我的调查一直受到限制,因为我对R非常陌生,不确定从哪里寻找问题,但我已经尝试了以下方法:

  • 已将唯一()切换为非重复()

结果相同,保留相同的重复样本。

  • 检查特定的重复行对是否实际相同

我猜想可能有一些"看不见"的东西意味着保留的行实际上是唯一的,所以用一个手动的过程检查了一些没有删除的重复行:
| | 时间|用户标识|地点|键|版本|
| - ------|- ------|- ------|- ------|- ------|- ------|
| x|2023年2月13日06时28分54秒|小行星30375|学校|碘-422-脱氧核糖核酸|二○二三|
| Y型|2023年2月13日06时28分54秒|小行星30375|学校|碘-422-脱氧核糖核酸|二○二三|
检查〈- Dataframe [x,]== Dataframe [y,]
它总是返回[TRUE,TRUE,TRUE,TRUE,TRUE]
因此,单元格差异似乎不是导致行不被视为重复的原因。

3bygqnnd

3bygqnnd1#

回答我自己的问题-我的问题原来不是unique(),而是函数。
unique()调用是函数的一部分。我没有正确地用返回的唯一 Dataframe 覆盖原始 Dataframe 。
准备MRE意味着我保存了数据集,并在此函数之外对它运行unique(),这确实起作用了,并指出了另一个问题。

相关问题