Nie wiesz, jak sformułować pytanie w słowach, ale jak utworzyć kolumnę indeksową dla tabeli data.table, która dla każdej grupy rośnie, gdy pojawia się inna wartość?Indeksuj unikatowe wartości w data.table
Oto MWE
library(data.table)
in.data <- data.table(fruits=c(rep("banana", 4), rep("pear", 5)),vendor=c("a", "b", "b", "c", "d", "d", "e", "f", "f"))
Oto wynik R-kod powinien generować
in.data[, wanted.column:=c(1,2,2,3,1,1,2,3,3)]
# fruits vendor wanted.column
# 1: banana a 1
# 2: banana b 2
# 3: banana b 2
# 4: banana c 3
# 5: pear d 1
# 6: pear d 1
# 7: pear e 2
# 8: pear f 3
# 9: pear f 3
więc etykiety każdy sprzedawca 1, 2, 3, ... w ramach każdego owocu. Prawdopodobnie istnieje bardzo proste rozwiązanie, ale utknąłem.
Zadziałało! Dodałem go w ten sposób: in.data [, wanted.2: = in.data [, rleid (vendor), by = fruits] [, V1]]. Może możesz napisać odpowiedź, abym mógł ją zaakceptować? – Chris