输入data.table:
V1 V2 V3 V4 V5 V6 V7 V8 V9
1: k141_100290 PROKKA CDS 62 364 . - . gene_id PROKKA_00256
2: k141_100292 PROKKA CDS 767 1198 . - . gene_id PROKKA_00257
3: k141_100292 PROKKA CDS 1201 1707 . - . gene_id PROKKA_00258
4: k141_100293 PROKKA CDS 79 1824 . - . gene_id PROKKA_00259
5: k141_100293 PROKKA CDS 1892 2152 . - . gene_id PROKKA_00260
6: k141_100293 PROKKA CDS 2155 2715 . - . gene_id PROKKA_00261
7: k141_100293 PROKKA CDS 2718 3641 . - . gene_id PROKKA_00262
8: k141_100293 PROKKA CDS 3647 4198 . - . gene_id PROKKA_00263
9: k141_100294 PROKKA CDS 1 222 . + . gene_id PROKKA_00264
对于V1
中的每个要素级别,我需要在列seq_ID
中创建顺序标签,如下所示:
V1 V2 V3 V4 V5 V6 V7 V8 V9 seq_ID
1: k141_100290 PROKKA CDS 62 364 . - . gene_id PROKKA_00256 k141_100290_1
2: k141_100292 PROKKA CDS 767 1198 . - . gene_id PROKKA_00257 k141_100292_1
3: k141_100292 PROKKA CDS 1201 1707 . - . gene_id PROKKA_00258 k141_100292_2
4: k141_100293 PROKKA CDS 79 1824 . - . gene_id PROKKA_00259 k141_100293_1
5: k141_100293 PROKKA CDS 1892 2152 . - . gene_id PROKKA_00260 k141_100293_2
6: k141_100293 PROKKA CDS 2155 2715 . - . gene_id PROKKA_00261 k141_100293_3
7: k141_100293 PROKKA CDS 2718 3641 . - . gene_id PROKKA_00262 k141_100293_4
8: k141_100293 PROKKA CDS 3647 4198 . - . gene_id PROKKA_00263 k141_100293_5
9: k141_100294 PROKKA CDS 1 222 . + . gene_id PROKKA_00264 k141_100294_1
看起来很简单,但我很困难。 data.table太大而无法由ddply
处理,我需要data.table
或dplyr
解决方案。
答案 0 :(得分:2)
这与Numbering rows within groups in a data frame
非常相似/可能重复更改mnel答案所需的全部内容是使用row_number
粘贴V1test <- data.frame(X = c("A","A","A","B","B","C","C","C","C"))
test %>% group_by(X) %>% mutate(seq_ID = paste(X, row_number(), sep = "_"))