Operações de linha em data.table usando `by = .I`
Aqui está uma boa explicação sobre SOoperações de linha emdata.table
Uma alternativa que me veio à mente é usar uma únicaid
para cada linha e, em seguida, aplique uma função usando oby
argumento. Como isso:
library(data.table)
dt <- data.table(V0 =LETTERS[c(1,1,2,2,3)],
V1=1:5,
V2=3:7,
V3=5:1)
# create a column with row positions
dt[, rowpos := .I]
# calculate standard deviation by row
dt[ , sdd := sd(.SD[, -1, with=FALSE]), by = rowpos ]
Questões:
Existe uma boa razão para não usar essa abordagem? talvez outras alternativas mais eficientes?
Por que usarby = .I
não funciona da mesma maneira?
dt[ , sdd := sd(.SD[, -1, with=FALSE]), by = .I ]