使用group_by为重复基因添加序号生成新列的实现方法
解决方法
直接使用dplyr的组内序号生成功能即可,修正后的代码如下:
library(dplyr) mygenes %>% group_by(gene) %>% mutate(isoform_id = paste(gene, row_number(), sep = "_"))
错误说明
- 你之前的第一段代码错误在于使用了未定义的
NUMBERS变量,实际上row_number()就能直接生成组内的连续整数序号 - 第二段代码中的
consecutive_id并非dplyr的内置函数,所以会报错
输出结果
执行后得到的dataframe如下:
# A tibble: 10 × 2 # Groups: gene [5] gene isoform_id <chr> <chr> 1 PCDH9 PCDH9_1 2 PCDH9 PCDH9_2 3 PCDH9 PCDH9_3 4 PCDH9 PCDH9_4 5 CN0T6L CN0T6L_1 6 CN0T6l CN0T6l_1 7 CN0T6l CN0T6l_2 8 MRPL1 MRPL1_1 9 FRAS1 FRAS1_1 10 FRAS1 FRAS1_2
(注:CN0T6L和CN0T6l是大小写不同的字符串,会被识别为两个独立分组,因此各自从1开始计数,你期望结果里的CN0T6l_2和CN0T6l_3应为笔误)
内容的提问来源于stack exchange,提问作者aminards
相关产品推荐
相关产品推荐

