La version 1.14.1
de data.table (encore en développement) apporte une syntaxe améliorée dans ce cas et considère l’utilisation de get
comme désuète. Le [...]
admet un nouvel argument env
à qui on donne tous les remplacements que l’on souhaite. L’exemple devient :
creation_var <- function(data, nom_variable, nouveau_nom){
data[, nouveau_nom := nom_variable + 1,
env = list(nouveau_nom = nouveau_nom, nom_variable = nom_variable)]
}
head(creation_var(filosofi_com_2016_dt,
nom_variable = "NBMENFISC16",
nouveau_nom = "nouvelle_variable"), 2)
L’avantage c’est qu’on peut effectuer de tels remplacements dans i
(dimension ligne) et qu’on peut même remplacer des fonctions :
creation_var <- function(data, nom_variable, nouveau_nom, fonction){
data[, nouveau_nom := fonction(nom_variable),
env = list(nouveau_nom = nouveau_nom, nom_variable = nom_variable, fonction= fonction)]
head(creation_var(filosofi_com_2016_dt,
nom_variable = "NBMENFISC16",
nouveau_nom = "nouvelle_variable",
fonction = "sqrt"), 2)
}