如何修改tibble中GeneID列格式 统计两个tibble的共有行数
Tibble共有行统计的GeneID格式对齐方案
两种格式调整的操作都可以直接实现,任选一种统一两个tibble的GeneID格式后,即可完成共有行计数:
格式统一方法
给纯数字GeneID添加
Gene前缀
假设存储纯数字格式GeneID的tibble命名为tb1,直接对列做字符拼接即可,若原列是数值类型需要先转字符型避免报错:library(dplyr) tb1 <- tb1 %>% mutate(GeneID = paste0("Gene", as.character(GeneID)))移除带前缀GeneID中的
Gene字段
假设存储Gene1这类带前缀ID的tibble命名为tb2,用正则替换掉开头的Gene字符串即可,需要匹配数值类型的话可以额外做类型转换:tb2 <- tb2 %>% mutate(GeneID = gsub("^Gene", "", GeneID)) # 若要转成数值类型和原数字ID匹配,把上面一行替换为下面的代码 # mutate(GeneID = as.numeric(gsub("^Gene", "", GeneID)))
共有行统计
格式对齐后,直接按GeneID匹配筛选、计数即可:
# 统计tb1中同时存在于tb2的行总数 common_row_num <- tb1 %>% filter(GeneID %in% tb2$GeneID) %>% nrow()
如果需要匹配所有列的值完全一致才算共有行,可以在格式对齐后用
inner_join(tb1, tb2)连接两个表,再统计返回结果的行数即可。
内容的提问来源于stack exchange,提问作者Isabella Nalepa
相关产品推荐
相关产品推荐

