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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *