[英]Subset all rows in a dataframe that are NOT unique (based on a vector/column) .. or remove unique rows
我有一個帶有許多基因的 dataframe(列是“基因”)。 有些基因不止一次出現。 我想對 dataframe 進行子集化,其中我只有出現多次的基因。 換句話說,我想刪除相對於“基因”列唯一的行。
我們可以在base R
中使用帶有table
的subset
。 使用table
獲取“基因”的頻率計數,創建一個檢查計數大於 1 的邏輯表達式,檢索這些基因並使用%in%
對這些基因進行子集化
subset(df1, genes %in% names(which(table(genes) > 1)))
或duplicated
另一個選項
subset(df1, duplicated(genes)|duplicated(genes, fromLast = TRUE))
或使用dplyr
library(dplyr)
df1 %>%
group_by(genes) %>%
filter(n() > 1) %>%
ungroup
這是另一個基本 R 選項,使用subset
+ ave
subset(df, ave(gene,gene,FUN = length)>1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.