【问题标题】:count number couples in big R dataset计算大 R 数据集中的数对
【发布时间】:2020-04-15 18:20:20
【问题描述】:

我有一个 4049x30 的数据集,每个单元格都有一个数字或 NA。 我需要计算每行出现几个特定数字的次数。 即

m<-matrix(c(1, 2, 3,
            1, 5, 6,
            3, 5, 6,
            2, 3, 7), ncol=3, byrow = TRUE)

我有 (2,3) 两次和 (5,6) 两次

非常感谢您的帮助

【问题讨论】:

    标签: r algorithm matrix counter


    【解决方案1】:
    m_tbl <- table(paste(m[,-ncol(m)], m[,-1], sep = ','))
    
    m_tbl[m_tbl > 1]
    # 2,3 5,6 
    #   2   2
    
    
    m_tbl <- table(m[,-ncol(m)], m[,-1])
    
    subset(as.data.frame(m_tbl), Freq > 1)
    #    Var1 Var2 Freq
    # 6     2    3    2
    # 16    5    6    2
    
    
    library(data.table)
    m_dt <- data.table(c(m[,-ncol(m)]), c(m[,-1]))
    
    m_dt[, .N, V1:V2][N > 1]
    #    v1 v2 N
    # 1:  2  3 2
    # 2:  5  6 2
    

    【讨论】:

    • 感谢您的回答,我试过了,结果是整数(0)。难道是因为所有的NA?
    【解决方案2】:

    我们也可以

    library(dplyr)
    library(stringr)
    tibble(col1 = str_c(m[, -ncol(m)], m[, -1])) %>% 
        count(col1) %>%
        filter(n > 1)
    

    【讨论】:

    • 非常感谢。我尝试启动它,结果如下: # A tibble: 0 x 2 # ... with 2 variables: col1 , n 警告消息:1: In stri_c(..., sep = sep , collapse = collapse, ignore_null = TRUE) :参数不是原子向量;强制 2:在 stri_c(..., sep = sep, collapse = collapse, ignore_null = TRUE) 中:参数不是原子向量;胁迫
    • @LauraPerin 你有matrix 或不同的对象吗,因为根据你的例子,它工作得很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2013-09-27
    • 2019-07-14
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多