Ho un sondaggio in cui un ID univoco deve essere assegnato alle domande. Alcune domande appaiono più volte. Ciò significa che c'è un ulteriore livello di domande. Nei dati di esempio qui sotto è incluso solo il primo strato.Livelli del fattore ordine in ordine di apparizione nel set di dati
Domanda: come si assegna un indice univoco per ordine di apparizione? La soluzione fornita here funziona in ordine alfabetico. Posso ordinare i fattori, ma questo sconfigge lo scopo di farlo in R [ci sono molte domande da ordinare].
library(data.table)
dt = data.table(question = c("C", "C", "A", "B", "B", "D"),
value = c(10,20,30,40,20,30))
dt[, idx := as.numeric(as.factor(question))]
dà:
question value idx
# 1: C 10 3
# 2: C 20 3
# 3: A 30 1
# 4: B 40 2
# 5: B 20 2
# 6: D 30 4
# but required is:
dt[, idx.required := c(1, 1, 2, 3, 3, 4)]
+1 per LukeA ma questo è davvero più compatto. Entrambe le soluzioni funzionano. – Henk
Che cosa è 'idx: = .GRP'? – Superbest