NA w tabeli danych
mamdata.table
który zawiera kilka grup. Działam na każdej grupie, a niektóre grupy zwracają liczby, inne wracająNA
. Z jakiegoś powodudata.table
ma problemy ze złożeniem wszystkiego z powrotem. Czy to błąd, czy nie rozumiem? Oto przykład:
dtb <- data.table(a=1:10)
f <- function(x) {if (x==9) {return(NA)} else { return(x)}}
dtb[,f(a),by=a]
Error in `[.data.table`(dtb, , f(a), by = a) :
columns of j don't evaluate to consistent types for each group: result for group 9 has column 1 type 'logical' but expecting type 'integer'
Moje zrozumienie było takieNA
jest zgodny z liczbami w R, ponieważ wyraźnie możemy miećdata.table
który maNA
wartości. Zdaję sobie sprawę, że mogę wrócićNULL
i to będzie działać dobrze, ale problem jest zNA
.