Come posso passare il nome di una colonna in una funzione simile alla domanda here ma utilizzando la concatenazione dplyr
e filter()
insieme a %in%
.R, passare il nome della colonna come argomento per funzionare utilizzando dplyr :: filter() e% in%
require(dplyr)
set.seed(8)
df <- data.frame(
A=sample(c(1:3), 10, replace=T),
B=sample(c(1:3), 10, replace=T))
Se vuole ottenere righe in cui la colonna A è 1 o 2 che posso fare:
df %>% filter(A %in% c(1,2))
ottengo:
A B
1 2 3
2 1 2
3 1 3
4 2 1
5 1 1
6 1 3
Ora, come posso mettere questo in una funzione , dove è possibile specificare la colonna, questo non funziona:
fun1 <- function(x, column, n){
res <-
x %>% filter(column %in% n)
return(res)
}
fun1(df, A, c(1,2))
Questo è qualcosa di buono da vedi ora Quando ho fatto una domanda simile qualche tempo fa, @aosmith ha fornito una bella risposta. Qui, vedo una versione aggiornata. Oggi sto prendendo appunti. :) +1 – jazzurro
@jazzurro Grazie per il commento. – akrun
@akrun potresti inserire una spiegazione per la tua opzione 2 - will 'match.call()' contiene tutti gli argomenti che sono inseriti nella funzione? E come questo può essere interpretato da 'filter()' in 'eval()'? – user3375672