Jak usunąć zduplikowane linie w r, aby nie pozostały żadne
Możesz użyć następujących metod w R, aby usunąć zduplikowane wiersze z ramki danych, tak aby żaden nie pozostał w wynikowej ramce danych:
Metoda 1: Użyj podstawy R
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]
Metoda 2: użyj dplyr
library (dplyr) new_df <- df %>% group_by(across(everything())) %>% filter(n() == 1 )
Poniższe przykłady pokazują, jak w praktyce zastosować każdą metodę z następującą ramką danych:
#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
Przykład 1: użyj Base R
Poniższy kod pokazuje, jak używać funkcji podstawowych języka R do usuwania zduplikowanych wierszy z ramki danych, tak aby żaden nie pozostał:
#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
Należy zauważyć, że każdy z duplikatów wierszy został usunięty z ramki danych i żaden z duplikatów nie został zachowany.
Przykład 2: użycie dplyr
Poniższy kod pokazuje, jak używać funkcji pakietu dplyr w R do usuwania zduplikowanych wierszy z ramki danych, tak aby żaden nie pozostał:
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
Należy zauważyć, że każdy z duplikatów wierszy został usunięty z ramki danych i żaden z duplikatów nie został zachowany.
Należy również pamiętać, że daje to taki sam wynik jak poprzednia metoda.
Uwaga : w przypadku wyjątkowo dużych ramek danych metoda dplyr będzie szybsza niż podstawowa metoda R.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe funkcje w R:
Jak usunąć wiersze w R na podstawie warunku
Jak usunąć wiersze z NA w określonej kolumnie w R