Je mehr ich es verwende, desto mehr ersetzt data.table
dplyr
als mein "Goto" -Paket, da die Geschwindigkeit, die es bietet, ein großes Plus ist.r - Übergabe von Variablen wie data.table Spaltennamen
Frage
Kann passieren Sie Variablen i
in data.table (dt[i,j]
) withouth eine expression
erstellen?
Beispiel
Bei einer data.table:
library(data.table)
dt <- data.table(val1 = c(1,2,3),
val2 = c(3,2,1))
ich evalulate möchte:
dt[(val1 > val2)]
aber mit einer Variablen die Spaltennamen zu verweisen. Zum Beispiel
myCol <- c("val1", "val2") ## vector of column names
Ich habe ein lots of questions lesen, die mit Ausdrücken Möglichkeiten, dies zu tun, zeigen:
## create an expression to evaluate
expr <- parse(text = paste0(myCol[1], " > ", myCol[2]))
## evaluate expression
dt[(eval(expr))]
val1 val2
1: 3 1
Aber ich frage mich, ob es ein ‚direkter‘ Weg, dies zu tun, dass ich habe verpasst, so etwas wie:
dt[(myCol[1] > myCol[2])]
Oder ist die expression
Weg der Art und Weise dies geschehen soll?
@thelatemail Danke, fügte hinzu. – akrun
Wäre es richtig zu sagen, dass 'eval (as.name (...)) == get()'? – tospig
@tospig Diese [link] (http://adv-r.had.co.nz/Expressions.html) würde mehr Ideen geben. – akrun