Più lo uso, più data.table
sostituisce dplyr
come pacchetto "goto" in quanto la velocità che offre è un grande vantaggio.r - passare le variabili come nomi di colonne data.table
Domanda
Puoi passare variabili a i
a data.table (dt[i,j]
) tecnico senza la creazione di un expression
?
Esempio
Dato un data.table:
library(data.table)
dt <- data.table(val1 = c(1,2,3),
val2 = c(3,2,1))
desidero evalulate:
dt[(val1 > val2)]
ma utilizzando una variabile per riferimento ai nomi di colonna. Ad esempio,
myCol <- c("val1", "val2") ## vector of column names
Ho letto un lots of questions che mostrano modi di fare questo con le espressioni:
## create an expression to evaluate
expr <- parse(text = paste0(myCol[1], " > ", myCol[2]))
## evaluate expression
dt[(eval(expr))]
val1 val2
1: 3 1
ma mi chiedevo se esiste un modo più 'diretto' per fare questo che ho 'Ho perso, qualcosa di simile a:
dt[(myCol[1] > myCol[2])]
O è il percorso expression
il modo in cui questo dovrebbe essere fatto?
@thelatemail Grazie, aggiunse. – akrun
Sarebbe corretto dire che 'eval (as.name (...)) == get()'? – tospig
@tospig Questo [collegamento] (http://adv-r.had.co.nz/Expressions.html) darebbe più idee. – akrun