在R中为列重新编制索引

在R中为列重新编制索引,r,R,我正在处理以下数据集 animal protein herd sire dam 6 416 189.29 2 15 236 7 417 183.27 2 6 295 9 419 193.24 3 11 268 10 420 198.84 2 12 295 11 421 205.25 3 3 251 12 422 204.15 2 2 281 13 4

我正在处理以下数据集

    animal protein herd sire dam
6      416  189.29    2   15 236
7      417  183.27    2    6 295
9      419  193.24    3   11 268
10     420  198.84    2   12 295
11     421  205.25    3    3 251
12     422  204.15    2    2 281
13     423  200.20    2    3 248
14     424  197.22    2   11 222
15     425  201.14    1   10 262
17     427  196.20    1   11 290
18     428  208.13    3    9 294
19     429  213.01    3   14 254
21     431  203.38    2    4 273
22     432  190.56    2    8 248
25     435  196.59    3    9 226
26     436  193.31    3   10 249
27     437  207.89    3    7 272
29     439  202.98    2   10 260
30     440  177.28    2    4 291
31     441  182.04    1    6 282
32     442  217.50    2    3 265
33     443  190.43    2   11 248
35     445  197.24    2    4 256
37     447  197.16    3    5 240
42     452  183.07    3    5 293
43     453  197.99    2    6 293
44     454  208.27    2    6 254
45     455  187.61    3   12 271
46     456  173.18    2    6 280
47     457  187.89    2    6 235
48     458  191.96    1    7 286
49     459  196.39    1    4 275
50     460  178.51    2   13 262
52     462  204.17    1    6 253
53     463  203.77    2   11 273
54     464  206.25    1   13 249
55     465  211.63    2   13 222
56     466  211.34    1    6 228
57     467  194.34    2    1 217
58     468  201.53    2   12 247
59     469  198.01    2    3 251
60     470  188.94    2    7 290
61     471  190.49    3    2 220
62     472  197.34    2    3 224
63     473  194.04    1   15 229
64     474  202.74    2    1 287
67     477  189.98    1    6 300
69     479  206.37    3    2 293
70     480  183.81    2   10 274
72     482  190.70    2   12 265
74     484  194.25    3    2 262
75     485  191.15    3   10 297
76     486  193.23    3   15 255
77     487  193.29    2    4 266
78     488  182.20    1   15 260
81     491  195.89    2   12 294
82     492  200.77    1    8 278
83     493  179.12    2    7 281
85     495  172.14    3   13 252
86     496  183.82    1    4 264
88     498  195.32    1    6 249
89     499  197.19    1   13 274
90     500  178.07    1    8 293
92     502  209.65    2    7 241
95     505  199.66    3    5 220
96     506  190.96    2   11 259
98     508  206.58    3    3 230
100    510  196.60    2    5 231
103    513  193.25    2   15 280
104    514  181.34    2    3 227
我对动物指数感兴趣,与之相对应的是大坝指数。使用表格功能,我可以检查一些大坝是否与不同的动物相匹配。事实上,我得到了以下输出

217 220 222 224 226 227 228 229 230 231 235 236 240 241 247 248 249 251 252 253 254 255 256 259 260 262 
  1   2   2   1   1   1   1   1   1   1   1   1   1   1   1   3   3   2   1   1   2   1   1   1   2   3 
264 265 266 268 271 272 273 274 275 278 280 281 282 286 287 290 291 293 294 295 297 300 
  1   2   1   1   1   1   2   2   1   1   2   2   1   1   1   2   1   4   2   2   1   1 
使用长度函数,我检查了这个数据集中只有48个大坝


我想用整数1,…,48来“重新索引”它们,而不是我的集合中给出的这些。有什么方法可以做这样的事情吗?

你可以使用
匹配
独特

df$index <- match(df$dam, unique(df$dam))

我们可以在
数据表中使用
.GRP

library(data.table)
setDT(df)[, index := .GRP, dam]

我试过了,但不幸的是我没有得到我所期望的。我想以这种方式更改坝柱1、2、3、2…@Hendrra第一个选项使用
match
unique
。你试过了吗?对不起!它起作用了。只是一个输入错误,我得到了很多空值。非常感谢。那么,在尝试上述选项时,该选项起作用了还是得到了
NULL
值?
df$index <- dplyr::group_indices(df, dam)
library(data.table)
setDT(df)[, index := .GRP, dam]