R: Как выбрать строки во фрейме данных на основе значений в векторе


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

Метод 1: используйте базу R

new_df <- df[df$column_name %in% values_vector, ]

Способ 2: использовать пакет dplyr

library(dplyr)

new_df <- df %>% filter(column_name %in% values_vector)

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

#create data frame
df <- data.frame(division=c('West', 'West', 'East', 'East', 'North'),
 points=c(120, 100, 104, 98, 105),
 assists=c(30, 35, 64, 28, 23))

#view data frame
df

 division points assists
1 West 120 30
2 West 100 35
3 East 104 64
4 East 98 28
5 North 105 23

Пример 1. Использование базы R для выбора строк на основе значений в векторе

Мы можем использовать следующий код, чтобы выбрать только строки из исходного фрейма данных, где значение в столбце деления равно «Запад» или «Север».

#define values of interest
my_values <- c('West', 'North')

#select rows that contain 'West' or 'North' in division column
new_df <- df[df$division %in% my_values, ]

#view results
new_df

 division points assists
1 West 120 30
2 West 100 35
5 North 105 23

Новый фрейм данных содержит только те строки, в которых значение в столбце разделения равно «Запад» или «Север».

Пример 2. Использование dplyr для выбора строк на основе значений в векторе

Мы также можем использовать функцию filter() из пакета dplyr в R, чтобы выбрать только строки из исходного фрейма данных, где значение в столбце деления равно «Запад» или «Север».

library(dplyr)

#define values of interest
my_values <- c('West', 'North')

#select rows that contain 'West' or 'North' in division column
new_df <- df %>% filter(division %in% my_values)

#view results
new_df

 division points assists
1 West 120 30
2 West 100 35
3 North 105 23

Новый фрейм данных содержит только те строки, в которых значение в столбце разделения равно «Запад» или «Север».

Примечание.Методы base R и dplyr дают одинаковые результаты. Однако метод dplyr будет работать быстрее при работе с очень большими фреймами данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как выбрать случайные строки в R с помощью dplyr
Как выбрать строки по условию в R
Как выбрать строки, в которых значение появляется в любом столбце в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.