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


Вы можете использовать следующие методы для фильтрации фрейма данных в R, где определенный столбец находится между двумя значениями:

Метод 1: используйте базу 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. Фильтрация столбца между двумя значениями с использованием базы 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *