你好,我是法国工程专业的学生,我有一个大学的项目。目前,我想删除数据中的行,如果它们在列的值中相似的话。我的数据库看起来像这样:
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”中的值。
感谢您的帮助。 :)
答案 0 :(得分:4)
使用基数R,
df[!duplicated(df[c('node', 'std')]),]