tiene tabla sacar que periodos periodo periodica nombre los indica hay grupos grupo elemento electronica cuantos configuracion como r data.table

sacar - Cuente el número de registros y genere el número de fila dentro de cada grupo en una tabla de datos.



que es un periodo en la tabla periodica (1)

Utilizando .N ...

DT[ , `:=`( COUNT = .N , IDX = 1:.N ) , by = VAL ] # VAL COUNT IDX # 1: 1 3 1 # 2: 2 4 1 # 3: 2 4 2 # 4: 3 3 1 # 5: 1 3 2 # 6: 3 3 2 # 7: 3 3 3 # 8: 2 4 3 # 9: 2 4 4 #10: 1 3 3

.N es el número de registros en cada grupo, con grupos definidos por "VAL" .

Tengo los siguientes datos.

set.seed(1) DT <- data.table(VAL = sample(c(1, 2, 3), 10, replace = TRUE)) VAL 1: 1 2: 2 3: 2 4: 3 5: 1 6: 3 7: 3 8: 2 9: 2 10: 1

Dentro de cada número en VAL quiero:

  1. Cuente el número de registros / filas
  2. Cree un índice de fila (contador) de primera, segunda, tercera aparición, etc.

Al final quiero el resultado.

VAL COUNT IDX 1: 1 3 1 2: 2 4 1 3: 2 4 2 4: 3 3 1 5: 1 3 2 6: 3 3 2 7: 3 3 3 8: 2 4 3 9: 2 4 4 10: 1 3 3

donde "COUNT" es el número de registros / filas para cada "VAL", e "IDX" es el índice de fila dentro de cada "VAL".

Intenté trabajar con which y length usando .I :

dt[, list(COUNT = length(VAL == VAL[.I]), IDX = which(which(VAL == VAL[.I]) == .I))]

pero esto no funciona como .I refiere a un vector con el índice, así que supongo que uno debe usar .I[] . Aunque dentro de .I[] otra vez enfrento el problema, no tengo el índice de filas y sí sé (por leer las data.table frecuentes de la data.table y seguir las publicaciones aquí) que se debe evitar el bucle a través de las filas si es posible.

Entonces, ¿cuál es la forma data.table ?