Як видалити повторювані рядки в r, щоб їх не залишилося
Ви можете використовувати наступні методи в R, щоб видалити повторювані рядки з кадру даних, щоб жоден не залишився в отриманому кадрі даних:
Спосіб 1: Використовуйте Base R
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]
Спосіб 2: використовуйте dplyr
library (dplyr) new_df <- df %>% group_by(across(everything())) %>% filter(n() == 1 )
У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), points=c(20, 20, 28, 14, 13, 18, 27, 13)) #view data frame df team points 1 to 20 2 to 20 3 to 28 4 to 14 5 B 13 6 B 18 7 B 27 8 B 13
Приклад 1: використовуйте Base R
У наведеному нижче коді показано, як використовувати базові функції R для видалення повторюваних рядків із кадру даних, щоб не залишилося жодного:
#create new data frame that removes duplicates so none are left
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]
#view new data frame
new_df
team points
3 to 28
4 to 14
6 B 18
7 B 27
Зауважте, що кожен дубльований рядок було видалено з кадру даних, і жоден із дублікатів не зберігається.
Приклад 2: використання dplyr
Наступний код показує, як використовувати функції в пакеті dplyr у R для видалення повторюваних рядків із фрейму даних, щоб не залишилося жодного:
library (dplyr)
#create new data frame that removes duplicates so none are left
new_df <- df %>%
group_by(across(everything())) %>%
filter(n() == 1 )
#view new data frame
new_df
# A tibble: 4 x 2
# Groups: team, points [4]
team points
1 to 28
2 to 14
3 B 18
4 B 27
Зауважте, що кожен дубльований рядок було видалено з кадру даних, і жоден із дублікатів не зберігається.
Також зауважте, що цей метод дає той самий результат, що й попередній метод.
Примітка . Для надзвичайно великих кадрів даних метод dplyr буде швидшим, ніж базовий метод R.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші поширені функції в R:
Як видалити рядки в R на основі умови
Як видалити рядки з NA в певному стовпці в R