簡體   English   中英

子集 dataframe 中不唯一的所有行(基於向量/列).. 或刪除唯一行

[英]Subset all rows in a dataframe that are NOT unique (based on a vector/column) .. or remove unique rows

我有一個帶有許多基因的 dataframe(列是“基因”)。 有些基因不止一次出現。 我想對 dataframe 進行子集化,其中我只有出現多次的基因。 換句話說,我想刪除相對於“基因”列唯一的行。

我們可以在base R中使用帶有tablesubset 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM