vecteurs de table et de caractère
-
12-11-2019 - |
Question
Dans mon travail, je me réfère souvent aux listes de variables comme un seul vecteur de caractère.
A <- data.table(var1 = 1:10, var2 = 11:20, var3 = 21:30)
vecvar <- c("var1", "var2", "var3")
Chaque fois que possible, je veux utiliser vecvar
Plutôt que d'énumérer les variables, car cela rend mon code plus robuste aux applications futures à des listes légèrement différentes de variables.
J'ai récemment découvert data.table
, et autant que j'aime l'élégance générale de la syntaxe et les gains d'efficacité, je trouve qu'il se heurte un peu à mon inclination décrite ci-dessus. En effet, A[, vecvar]
ne fonctionnera pas.
Je suis indécis quant à la meilleure façon de contourner cela.
A[, vecvar, with=F]
fonctionnera, mais n'est pas toujours pratique (par exemple A[, list(vecvar, var1+var2), with=F]
ne fonctionnera pas).
A[, sapply(vecvar, get)]
ne fonctionnera pas, cependant A[, sapply(vecvar, function(x) get(x))]
sera.
Je ne suis pas coincé, car j'ai des moyens de y faire face - je veux juste savoir quelle est la meilleure façon de travailler avec cela, avant de prendre de mauvaises habitudes!
Pas de solution correcte