2016-06-29 2 views
0

Здравствуйте, я студент-инжинер во Франции, и у меня есть проект для университета. В настоящее время я хотел бы удалить строки в своих данных, если они похожи в значениях столбца. Моя база данных выглядит следующим образом:Удалите повторяющиеся строки из фрейма данных на основе нескольких переменных

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» AND «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 

Как вы можете видеть, четвертая строка осталась, потому что условие, что я хочу создать рассмотреть повторяющиеся данные, только если «узел» и «станд» похожи. И в этом случае значения «std» равны предыдущим строкам, но не для значений внутри «узла».

Спасибо вам за помощь. :)

+0

'install.packages ("data.table"); data.table :: setDT (ДФ); data.table :: setkey (df, node, std); unique (df) ' –

ответ

3

Используя базу R,

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

Большое спасибо @Sotos и извините за вопросы с манекенами. Хорошего дня ! : D –

+0

Просто добавьте несколько строк, чтобы добавить ответ: #new_uniq будет содержать уникальный набор данных без дубликатов. new_uniq <- набор данных [! Дублируется (набор данных [с ('Date', 'State')]),] View (new_uniq) #Indexes из повторяющихся строк, которые будут удалены: duplicate_indexes <- который (duplicated (dataset [c ('Date', 'State')]),) duplicate_indexes –

Смежные вопросы