Cara meneruskan string sebagai nama variabel di dplyr
Anda dapat menggunakan salah satu metode berikut untuk meneruskan string sebagai nama variabel di dplyr:
Metode 1: Gunakan dapatkan()
df %>% filter(get(my_var) == ' A ')
Metode 2: Gunakan .data
df %>% filter(. data [[my_var]] == ' A ')
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut:
#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
Contoh 1: Berikan string sebagai nama variabel di dplyr menggunakan get()
Jika kita mencoba memfilter bingkai data dengan meneruskan string sebagai nama variabel ke fungsi filter() di dplyr, kita akan mendapatkan bingkai data kosong:
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)
Salah satu cara untuk menyiasatinya adalah dengan menggabungkan nama variabel dalam fungsi 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
Dengan menggunakan fungsi get() dalam fungsi filter() , kita berhasil memfilter baris bingkai data hanya untuk baris yang timnya sama dengan A.
Contoh 2: Berikan string sebagai nama variabel di dplyr menggunakan .data
Cara lain untuk meneruskan string sebagai nama variabel ke fungsi filter() di dplyr adalah dengan menggunakan fungsi .data sebagai berikut:
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
Dengan menggunakan fungsi .data dalam fungsi filter() , kita berhasil memfilter baris dalam bingkai data hanya untuk baris yang timnya sama dengan A.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di dplyr:
Cara memilih baris pertama berdasarkan grup menggunakan dplyr
Cara memfilter berdasarkan beberapa kondisi menggunakan dplyr
Cara memfilter baris yang berisi string tertentu menggunakan dplyr