我正在尝试将我的csv文件中的一列变量绑定到整数列表。这是我的数据的简短示例:
blocks
1. 097XX S BRENNAN AVE
2. 105XX S YATES AVE
3. 105XX S YATES AVE
4. 103XX S CORLISS AVE
5. 097XX S BRENNAN AVE
6. 103XX S CORLISS AVE
所以通过unique(块),我实际上有3个唯一的块名,我用整数分配它们的块号:
blocks block_num
1. 097XX S BRENNAN AVE 1
2. 105XX S YATES AVE 2
3. 103XX S CORLISS AVE 3
问题是如何让原始长块列表得到相应的块编号列,如下所示:
blocks block_num
1. 097XX S BRENNAN AVE 1
2. 105XX S YATES AVE 2
3. 105XX S YATES AVE 2
4. 103XX S CORLISS AVE 3
5. 097XX S BRENNAN AVE 1
6. 103XX S CORLISS AVE 3
我有大约2,000个区块观察。所以我正在寻找一种快速的方法来将分配应用于长列表。
谢谢!
答案 0 :(得分:3)
" data.table"更为惯用的方法。将使用.GRP
。
继续使用Dayne的样本数据:
set.seed(1234)
library(data.table)
xmpl <- data.table(block = sample(c("aaa", "bbb", "ccc"), 10, TRUE))
xmpl[, block_num := .GRP, by = block][]
# block block_num
# 1: aaa 1
# 2: bbb 2
# 3: bbb 2
# 4: bbb 2
# 5: ccc 3
# 6: bbb 2
# 7: aaa 1
# 8: aaa 1
# 9: bbb 2
# 10: bbb 2