Como passar uma string como nome de variável no dplyr
Você pode usar um dos seguintes métodos para passar uma string como nome de variável em dplyr:
Método 1: use get()
df %>% filter(get(my_var) == ' A ')
Método 2: use .data
df %>% filter(. data [[my_var]] == ' A ')
Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados:
#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
Exemplo 1: Passe uma string como nome de variável em dplyr usando get()
Se tentarmos filtrar um quadro de dados passando uma string como nome de variável para a função filter() em dplyr, obteremos um quadro de dados vazio:
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)
Uma maneira de contornar isso é agrupar o nome da variável na função 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
Usando a função get() na função filter() , podemos filtrar com sucesso as linhas do quadro de dados apenas para linhas onde a equipe é igual a A.
Exemplo 2: Passe uma string como nome de variável em dplyr usando .data
Outra maneira de passar uma string como nome de variável para a função filter() em dplyr é usar a função .data da seguinte forma:
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
Usando a função .data na função filter() , podemos filtrar com sucesso as linhas no quadro de dados apenas para linhas onde a equipe é igual a A.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns no dplyr:
Como selecionar a primeira linha por grupo usando dplyr
Como filtrar por múltiplas condições usando dplyr
Como filtrar linhas contendo uma determinada string usando dplyr