Wrangling Daten mit data.table
‚s Bewertung, finde ich mich Zeilen wie diese dritte Linie viel zu schreiben:Shortcut für Streicher in data.table Zuweisungen
DT = data.table(a = 1:10)
name = 'a'
DT[,eval(parse(text=sprintf('%s_plus_one := %s + 1',name,name)))]
was ich gehofft hatte zu
DT[,s('%s_plus_one := %s + 1',name,name)]
zu reduzieren
eine Funktion wie mit:
# s is *very* short for substitute and evalute
s <- function(...)
eval(parse(text=sprintf(...)))
aber dann bekomme ich diesen Fehler:
Ich weiß, ich kann dies tun:
# sp is short for substitute and parse
sp <- function(...)
parse(text=sprintf(...))
DT[,eval(sp('%s_plus_one := %s + 1',name,name))]
DT
#> a a_plus_one
#> 1: 1 2
#> 2: 2 3
#> 3: 3 4
#> 4: 4 5
aber Gebäude Strings in einer data.table Zuordnung zu bewerten ist so verbreitet, dass ich gehofft hatte minimiert so viel wie möglich eingeben.
Warum Anruf von Sprachobjekten nicht erstellen, statt Zeichenfolge zu analysieren? Es gibt eine Art Validierung, bevor es ausgewertet wird. – jangorecki