在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]