Як передати рядок як ім’я змінної в dplyr
Ви можете використати один із наведених нижче методів, щоб передати рядок як ім’я змінної в dplyr:
Спосіб 1: Використовуйте get()
df %>% filter(get(my_var) == ' A ')
Спосіб 2. Використовуйте .data
df %>% filter(. data [[my_var]] == ' A ')
У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'B', 'B'), points=c(99, 90, 86, 88, 95), assists=c(33, 28, 31, 39, 34), rebounds=c(30, 28, 24, 24, 28)) #view data frame df 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 B 95 34 28
Приклад 1: передача рядка як імені змінної в dplyr за допомогою get()
Якщо ми спробуємо відфільтрувати кадр даних, передавши рядок як ім’я змінної функції filter() у dplyr, ми отримаємо порожній кадр даних:
library (dplyr)
#define variable
my_var <- ' team '
#attempt to filter for rows where team is equal to a variable
df %>% filter(my_var == ' A ')
[1] team points assists rebounds
<0 rows> (or 0-length row.names)
Один із способів обійти це — обернути назву змінної у функцію get() :
library (dplyr)
#define variable
my_var <- ' team '
#filter for rows where team is equal to a variable
df %>% filter(get(my_var) == ' A ')
team points assists rebounds
1 A 99 33 30
2 A 90 28 28
3 A 86 31 24
Використовуючи функцію get() у функції filter() , ми можемо успішно фільтрувати рядки кадру даних лише для рядків, де команда дорівнює A.
Приклад 2: передача рядка як імені змінної в dplyr за допомогою .data
Ще один спосіб передати рядок як ім’я змінної функції filter() у dplyr — це використати функцію .data наступним чином:
library (dplyr)
#define variable
my_var <- ' team '
#filter for rows where team is equal to a variable
df %>% filter(. data [[my_var]] == ' A ')
team points assists rebounds
1 A 99 33 30
2 A 90 28 28
3 A 86 31 24
Використовуючи функцію .data у функції filter() , ми можемо успішно фільтрувати рядки у фреймі даних лише для рядків, де команда дорівнює A.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в dplyr:
Як вибрати перший рядок групою за допомогою dplyr
Як фільтрувати за кількома умовами за допомогою dplyr
Як фільтрувати рядки, що містять певний рядок, за допомогою dplyr