【发布时间】:2014-06-11 07:56:45
【问题描述】:
我有一个调查,其中必须为问题分配一个唯一 ID。有些问题会出现多次。这意味着还有一层额外的问题。在下面的示例数据中,仅包括第一层。
问题:如何按出现顺序分配唯一索引? here 提供的解决方案按字母顺序工作。我可以对因素进行排序,但这违背了在 R 中进行排序的目的[有很多问题需要排序]。
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))]
给予:
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)]
【问题讨论】:
标签: r data.table r-factor