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 ]

Respuestas a la pregunta(1)

Su respuesta a la pregunta