Odp.: jak filtrować wiersze, w których kolumna znajduje się pomiędzy dwiema wartościami


Możesz użyć następujących metod, aby odfiltrować ramkę danych w R, gdzie określona kolumna znajduje się pomiędzy dwiema wartościami:

Metoda 1: Użyj podstawy R

 df_new <- subset(df, points %in% 100 : 120 )

Metoda 2: użyj dplyr

 library (dplyr)

df_new <- df %>% filter(between(points, 100 , 120 ))

Obydwa przykłady filtrują ramkę danych tak, aby zawierała tylko wiersze, których wartość w kolumnie Punkty mieści się w przedziale od 100 do 120 .

Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą metodę z następującą ramką danych w R:

 #create data frame
df <- data. frame (team=c('Mavs', 'Pacers', 'Mavs', 'Celtics', 'Nets', 'Pacers'),
                 points=c(104, 110, 134, 125, 114, 124),
                 assists=c(22, 30, 35, 35, 20, 27))

#view data frame
df

     team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Celtics 125 35
5 Nets 114 20
6 Pacers 124 27

Przykład 1: Filtruj, gdy kolumna znajduje się pomiędzy dwiema wartościami, używając Base R

Możemy użyć następującej składni z funkcją R base subset() , aby przefiltrować ramkę danych tak, aby zawierała tylko wiersze, których wartość w kolumnie punktów mieści się w przedziale od 100 do 120:

 #filter for rows where value in points column is between 100 and 120
df_new <- subset(df, points %in% 100 : 120 ) 

#view updated data frame
df_new

    team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Nets 114 20

Należy pamiętać, że zachowywane są tylko wiersze, których wartość w kolumnie punktów mieści się w przedziale od 100 do 120.

Wszystkie pozostałe wiersze, których wartość wykracza poza ten zakres, zostaną usunięte.

Przykład 2: Filtruj, gdy kolumna znajduje się pomiędzy dwiema wartościami, używając dplyr

Możemy użyć następującej składni z funkcjami filter() i Between() pakietu dplyr w R, aby przefiltrować ramkę danych tak, aby zawierała tylko wiersze, których wartość w kolumnie punktów mieści się w przedziale od 100 do 120:

 library (dplyr)

#filter for rows where value in points column is between 100 and 120
df_new <- df %>% filter(between(points, 100 , 120 ))

#view updated data frame
df_new

    team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Nets 114 20

Należy pamiętać, że zachowywane są tylko wiersze, których wartość w kolumnie punktów mieści się w przedziale od 100 do 120.

Należy również pamiętać, że ta metoda daje taki sam wynik jak podstawowa metoda R.

Uwaga : Pełną dokumentację funkcji filtrującej w dplyr można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:

Jak używać %in% do filtrowania wierszy z wartością na liście w R
Jak filtrować według wielu warunków za pomocą dplyr
Jak filtrować wiersze zawierające określony ciąg za pomocą dplyr

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *