W argumencie w data.table
znajduje się tam składnia, która pozwala mi odwoływać się do wcześniej utworzonych zmiennych, podczas gdy w tej samej instrukcji j
? Zastanawiam się nad czymś takim jak konstrukcja Lisp'a let*
.Czy mogę używać zmiennych nowo utworzonych w `j` w tym samym argumencie" 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]
Wynika to w
# Error in `[.data.table`(DT, , list(attempts = .N, successes = sum(b), :
# object 'successes' not found
rozumiem dlaczego, ale tam jest inna droga do osiągnięcia tego celu w tym samym j
?
możliwe duplikat [nowo dodanego kolumnie 'J' o data.table powinno być możliwe w ramach] (http://stackoverflow.com/questions/16510915/newly-added-column-in-j-of-data-table-should-be-available-in-scope-) –
@RicardoSaporta - Sam to duplikat tego: [ Jak mogę ocenić (lub utworzyć) kolumnę "w locie" w data.table w r] (http://stackoverflow.com/que stions/15712858/how-can-i-evaluation-or-create-an-on-the-fly-column-in-data-in-r/15713753 # comment22337886_15713753);) Wydaje się być wspólnym życzeniem wśród danych .table dla użytkowników. –
@ JoshO'Brien, świetnie! Może możemy połączyć je wszystkie? Dobra obserwacja. Być może powinniśmy umieścić coś w FAQ na temat DT na temat tego –