根据多个变量从数据框中删除重复的行

时间:2016-06-29 12:10:05

标签: r duplicates

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

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”中的值。

感谢您的帮助。 :)

1 个答案:

答案 0 :(得分:4)

使用基数R,

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