A: як відфільтрувати рядки, у яких стовпець знаходиться між двома значеннями


Ви можете використовувати такі методи для фільтрації кадру даних у R, де певний стовпець знаходиться між двома значеннями:

Спосіб 1: Використовуйте Base R

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

Спосіб 2: використовуйте dplyr

 library (dplyr)

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

Обидва ці приклади фільтрують кадр даних, щоб він містив лише рядки, значення яких у стовпці Points знаходиться між 100 і 120 .

У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних у 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

Приклад 1: фільтр, де стовпець знаходиться між двома значеннями, використовуючи Base R

Ми можемо використати наступний синтаксис із функцією R base subset() , щоб відфільтрувати фрейм даних, щоб він містив лише рядки, значення яких у стовпці точок становить від 100 до 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

Зауважте, що зберігаються лише рядки, значення яких у стовпці балів становить від 100 до 120.

Усі інші рядки, значення яких виходять за межі цього діапазону, видаляються.

Приклад 2: фільтр, де стовпець знаходиться між двома значеннями, за допомогою dplyr

Ми можемо використати такий синтаксис із функціями filter() і between() пакета dplyr у R, щоб відфільтрувати фрейм даних, щоб він містив лише рядки, значення яких у стовпці точок становить від 100 до 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

Зауважте, що зберігаються лише рядки, значення яких у стовпці балів становить від 100 до 120.

Також зауважте, що цей метод дає той самий результат, що й базовий метод R.

Примітка : Ви можете знайти повну документацію функції фільтра в dplyr тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в R:

Як використовувати %in% для фільтрації рядків із значенням у списку в R
Як фільтрувати за кількома умовами за допомогою dplyr
Як фільтрувати рядки, що містять певний рядок, за допомогою dplyr

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *