【问题标题】:Delete duplicate rows from a data frame based on multiple variable [duplicate]基于多个变量从数据框中删除重复行[重复]
【发布时间】:2016-11-01 03:12:05
【问题描述】:

您好,我是法国工程专业的学生,​​我有一个大学项目。目前,如果它们在列的值中相似,我想删除我的数据中的行。我的数据库是这样的:

node   event   grade    std             date                 groupe           name 
6794   57605    100     659  2016-04-08 10:59:45.882267  cm1_mat_001_eap_001    c8

6794   84007     0      659  2016-04-29 13:44:47.156998  cm1_mat_001_eap_001    c8

6794   86729    100     659  2016-05-02 14:17:02.945516  cm1_mat_001_eap_001    c8

6794   88921    100     659  2016-05-04 09:00:52.157544  cm1_mat_001_eap_001    c8

6797   10119     0      659  2016-05-17 08:27:28.371022  cm1_mat_001_eap_001    c8

6794   98291    100     729  2016-05-12 08:27:13.920052  cm1_mat_001_eap_001    c8

6794   99711    100     729  2016-05-13 06:50:13.60001   cm1_mat_001_eap_001    c8

6812   87995    100     796  2016-05-03 07:33:31.108374  cm1_mat_002_eap_003    c8

目前,如果列中的值相似,我想删除行。 就我而言,如果“node”和“std”列中的值相似,我想根据此条件删除重复的行并保留第一行。

6794   57605    100     659  2016-04-08 10:59:45.882267 cm1_mat_001_eap_001    c8

6797   10119     0      659  2016-05-17 08:27:28.371022  cm1_mat_001_eap_001    c8

6794   98291    100     729  2016-05-12 08:27:13.920052 cm1_mat_001_eap_001    c8

6812   87995    100     796  2016-05-03 07:33:31.108374 cm1_mat_002_eap_003    c8

如您所见,第四行仍然存在,因为我要创建的条件仅在“node”和“std”相似时才考虑重复数据。在这种情况下,“std”的值等于前几行,但不等于“node”中的值。

感谢您的帮助。 :)

【问题讨论】:

  • install.packages("data.table"); data.table::setDT(df); data.table::setkey(df, node, std); unique(df)

标签: r duplicates


【解决方案1】:

使用基础 R,

df[!duplicated(df[c('node', 'std')]),]

【讨论】:

  • 非常感谢@Sotos,并对这些傻瓜问题感到抱歉。祝你今天过得愉快 ! :D
  • 只需添加几行来补充答案:#new_uniq 将包含没有重复项的唯一数据集。 new_uniq
猜你喜欢
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 2018-07-15
  • 2016-11-02
  • 2020-02-12
  • 2020-04-03
相关资源
最近更新 更多