【问题标题】:Common elements by columns in high-dimensional matrix高维矩阵中按列的共同元素
【发布时间】:2021-05-19 12:09:53
【问题描述】:

我有一个类似 original 的数据,其中包含更多列。

id <- c('A','B','C', 'D', 'E', 'F', 'G')
month <- c('NA', 'D', 'H', 'I', 'A', 'B', 'NA')
iso <- c('NA', 'NA', 'NA', 'A', 'B', 'C', 'NA')
original <- data.frame(id, month, iso)

我想创建一个包含列中所有常见元素的字符串,例如字符串 common

common <- c("A", "B")

我发现了类似的帖子: R: How can I find the intersection of elements from two rows of a dataframe? 或喜欢: How to find common elements from multiple vectors?

但是这些帖子并没有成功。在这样一个高维数据集中,我需要一些“少手动”的东西。

有什么线索吗?

谢谢

【问题讨论】:

    标签: r dplyr intersection intersect dimensional


    【解决方案1】:

    一个选项可能是:

    Reduce(`intersect`, original)
    
    [1] "A" "B"
    

    【讨论】:

    • 好一个!谢谢:)
    【解决方案2】:

    使用purrr

    library(purrr)
    reduce(original, intersect)
    #[1] "A" "B"
    

    【讨论】:

      【解决方案3】:

      试试下面的代码

      library(RVenn)
      overlap(Venn(original))
      # [1] "A" "B"
      

      【讨论】:

      • 这对我来说是一个新信息。
      【解决方案4】:
      1. 将数据转化为列表(其实数据集原本就是列表)
      2. 然后:
      unli_df <- unlist(df)
      unique(unli_df)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多