Operaciones de fila en data.table usando `by = .I`
Aquí hay una buena explicación SO sobreoperaciones de fila endata.table
Una alternativa que me vino a la mente es usar un únicoid
para cada fila y luego aplique una función usando elby
argumento. Me gusta esto:
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 ]
Preguntas:
¿Hay una buena razón para no usar este enfoque? ¿Quizás otras alternativas más eficientes?
¿Por qué usarby = .I
no funciona igual?
dt[ , sdd := sd(.SD[, -1, with=FALSE]), by = .I ]