Jak filtrować tabelę danych w r (z przykładami)
Do filtrowania wierszy z tabeli danych w R można użyć następujących metod:
Metoda 1: Filtruj wiersze na podstawie jednego warunku
dt[col1 == ' A ', ]
Metoda 2: Filtruj wiersze zawierające wartość na liście
dt[col1 %in% c(' A ', ' C '), ]
Metoda 3: Filtruj wiersze, dla których spełniony jest jeden z kilku warunków
dt[col1 == ' A ' | col2 < 10 , ]
Metoda 4: Filtruj wiersze, w których spełnionych jest wiele warunków
dt[col1 == ' A ' & col2 < 10 , ]
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce z następującą tabelą danych w R:
library (data.table)
#create data table
dt <- data. table (team=c('A', 'A', 'A', 'B', 'C'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#view data table
dt
team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24
5: C 95 34 28
Przykład 1: Filtruj wiersze na podstawie warunku
Poniższy kod pokazuje, jak filtrować tylko wiersze, których wartość w kolumnie zespołu jest równa „A”:
#filter for rows where team is A dt[team == ' A ', ] team points assists rebounds 1: A 99 33 30 2: A 90 28 28 3: A 86 31 24
Przykład 2: Filtruj wiersze zawierające wartość na liście
Poniższy kod pokazuje, jak filtrować tylko wiersze, których wartość w kolumnie zespołu jest równa „A” lub „C”:
#filter for rows where team is A or C dt[team %in% c(' A ', ' C '), ] team points assists rebounds 1: A 99 33 30 2: A 90 28 28 3: A 86 31 24 4: C 95 34 28
Powiązane: Jak używać operatora %in% w R (z przykładami)
Przykład 3: Filtruj wiersze, dla których spełniony jest jeden z kilku warunków
Poniższy kod pokazuje, jak filtrować tylko wiersze, których wartość w kolumnie zespołu jest równa „A” lub wartość w kolumnie punktów jest mniejsza niż 90:
#filter for rows where team is A or points < 90 dt[team == ' A ' | points < 90 , ] team points assists rebounds 1: A 99 33 30 2: A 90 28 28 3: A 86 31 24 4: B 88 39 24
Uwaga : | Operator oznacza „OR” w R.
Przykład 4: Filtruj wiersze, w których spełnionych jest wiele warunków
Poniższy kod pokazuje, jak filtrować tylko wiersze, w których wartość w kolumnie zespołu jest równa „A” , a wartość w kolumnie punktów jest mniejsza niż 90:
#filter for rows where team is A and points < 90 dt[team == ' A ' & points < 90 , ] team points assists rebounds 1: A 86 31 24
Uwaga : Operator & oznacza „AND” w języku R.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak filtrować wektor w R
Jak usunąć linie z zerami w R
Jak usunąć puste linie z ramki danych w R