Π― ΠΈΠ·ΡΡΠ°Π» Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π² data.table
ΠΈ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½Π°ΡΠ΅Π» ΠΎΡΠΈΠ±ΠΊΡ.
ΠΡΠΈ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ by = .I
ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ.
dt[, sdd := sum(.SD[, 2:4, with=FALSE]), by = 1:NROW(dt) ]
dt[, rowpos := .I][ , sdd := sd(.SD[, -1, with=FALSE]), by = rowpos ]
dt[ , sdd := sd(.SD[, -1, with=FALSE]), by = .I ]
ΠΡΠΈΠΌΠ΅Ρ Π΄Π°Π½Π½ΡΡ
:
dt <- data.table(V0 =LETTERS[c(1,1,2,2,3)],
V1=1:5,
V2=3:7,
V3=5:1)
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ by = .I
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Ρ
ΠΎΡΡ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΠΌ i-expression
.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ .N
Π² by
(ΠΎΠΏΡΡΡ ΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΈΠ²Π½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ - dt[, ..., by = 1:.N]
- Ρ
ΠΎΡΡ ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ "ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ" ΠΎΡΠΈΠ±ΠΊΠ°).
ΠΠΎΡΠ΅ΠΌΡ Π±Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Β«ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ by = .I
, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
ΠΡΠΈΠ²Π΅Ρ @leoluyi!
ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ by = .I
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ by = NULL
. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ SO https://stackoverflow.com/questions/37667335/row-operations-in-data-table-using-by-i