【问题标题】:R: Subset factor levels that co-occur with two levels from another factorR:与另一个因子的两个水平同时出现的子集因子水平
【发布时间】:2020-11-13 08:04:24
【问题描述】:

我有一个由多列组成的数据框。我想对数据框进行子集化,以仅包含一个因素的水平与另一个因素的多个水平同时出现的行。对于下面的简化数据示例,我将只剩下前两行,即 GeneA、GeneA 和 TissueA TissueB。

A <- c("GeneA","GeneA","GeneB","GeneB","GeneC","GeneC")
B <- c("TissueA","TissueB","TissueA","TissueA","TissueA","TissueA")
df <- data.frame(Gene = A, Tissue = B)

提前致谢。

【问题讨论】:

    标签: r subset rows


    【解决方案1】:

    这是一个想法。您使用Gene 定义组。在每个组中,您要检查是否有多个唯一值。

    group_by(df, Gene) %>% 
    filter(n_distinct(Tissue) >= 2)
    
       Gene  Tissue 
      <fct> <fct>  
    1 GeneA TissueA
    2 GeneA TissueB
    

    【讨论】:

    • 谢谢 - 效果很好!值得一提的是其他偶然发现这需要 ddplyr 和 data.table。
    • @C24 我将uniqueN() 更改为n_distinct()。你只需要 dplyr 包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    相关资源
    最近更新 更多