Nell'argomento j
in data.table
, esiste una sintassi che mi consenta di fare riferimento a variabili create in precedenza nella stessa dichiarazione j
? Sto pensando a qualcosa come il costrutto di Lisp let*
.Posso usare variabili appena create in `j` nello stesso argomento` j`?
library(data.table)
set.seed(22)
DT <- data.table(a = rep(1:5, each = 10),
b = sample(c(0,1), 50, rep = TRUE))
DT[ ,
list(attempts = .N,
successes = sum(b),
rate = successes/attempts),
by = a]
Questo si traduce in
# Error in `[.data.table`(DT, , list(attempts = .N, successes = sum(b), :
# object 'successes' not found
capisco perché, ma c'è un modo diverso per ottenere questo risultato nella stessa j
?
possibile duplicato del [colonna appena aggiunta nel 'j' di data.table dovrebbe essere disponibile nel campo di applicazione] (http://stackoverflow.com/questions/16510915/newly-added-column-in-j-of-data-table-should-be-available-in-the-scope) –
@RicardoSaporta - Si tratta di un duplicato di questo: [ Come posso valutare (o creare) una colonna al volo in data.table in r] (http://stackoverflow.com/que stions/15712858/how-can-i-evaluate-or-create-an-on-the-fly-column-in-data-table-in-r/15713753 # comment22337886_15713753);) Sembra essere un desiderio comune tra i dati .table per gli utenti. –
@ JoshO'Brien, è grandioso! Forse possiamo unirli tutti? Bella osservazione però. Forse dovremmo mettere qualcosa nelle DT FAQ su questo –