我们可以使用subsetwith tablein base R。使用 获取“基因”的频率计数table,创建一个逻辑表达式来检查计数是否大于 1,检索这些基因并用于%in%对这些基因进行子集化
subset(df1, genes %in% names(which(table(genes) > 1)))
Run Code Online (Sandbox Code Playgroud)
或者另一个选择是duplicated
subset(df1, duplicated(genes)|duplicated(genes, fromLast = TRUE))
Run Code Online (Sandbox Code Playgroud)
或者使用dplyr
library(dplyr)
df1 %>%
group_by(genes) %>%
filter(n() > 1) %>%
ungroup
Run Code Online (Sandbox Code Playgroud)