我想从这个数据框中提取唯一值作为示例
test <- data.frame(position=c("chr1_13529", "chr1_13529", "chr1_13538"),
genomic_regions=c("gene", "intergenic", "intergenic"))
结果数据框应该只给我
chr1_13538 intergenic
基本上我想提取具有唯一位置的行
我想从这个数据框中提取唯一值作为示例
test <- data.frame(position=c("chr1_13529", "chr1_13529", "chr1_13538"),
genomic_regions=c("gene", "intergenic", "intergenic"))
结果数据框应该只给我
chr1_13538 intergenic
基本上我想提取具有唯一位置的行
这是一个tidyverse/dplyr解决方案。
您只是按 分组position,计算出现次数,然后选择那些只有 1 次出现的次数。
library(tidyverse)
test %>%
group_by(position) %>%
mutate(count = n()) %>%
filter(count == 1) %>%
select(-count)
这是一个基本的 R 方法:
有两个部分:
duplicated然后我们test在条件 2 上进行子集化。
test[!test$position %in% test$position[duplicated(test$position)],]
# position genomic_regions
#3 chr1_13538 intergenic