1

我想从这个数据框中提取唯一值作为示例

test <- data.frame(position=c("chr1_13529", "chr1_13529", "chr1_13538"),
               genomic_regions=c("gene", "intergenic", "intergenic"))

结果数据框应该只给我

chr1_13538      intergenic

基本上我想提取具有唯一位置的行

4

2 回答 2

2

这是一个tidyverse/dplyr解决方案。

您只是按 分组position,计算出现次数,然后选择那些只有 1 次出现的次数。

library(tidyverse)

test %>%
  group_by(position) %>%
  mutate(count = n()) %>%
  filter(count == 1) %>%
  select(-count)
于 2020-05-06T17:40:58.907 回答
0

这是一个基本的 R 方法:

有两个部分:

  1. 我们创建一个至少出现两次的位置列表,使用duplicated
  2. 我们寻找不在重复职位列表中的职位

然后我们test在条件 2 上进行子集化。

test[!test$position %in% test$position[duplicated(test$position)],]
#    position genomic_regions
#3 chr1_13538      intergenic
于 2020-05-06T17:48:54.550 回答