首页 文章

计算R中配对出现次数?

提问于
浏览
1

我想要做的是检查有序的x和y值对的数据帧(在这个特定的集合中只有4个可能的值)并计算每个特定值发生的次数 .

例如,我的数据框有第1列和第2列,如下所示:

data <- data.frame(col1=c(-.25, 0, -.25, -.77, 0, 0, 0, -2.5),
                   col2=c(0.9, 0, 0.9, 2.9, 0, 0, 0, 0.9))

而且我想计算每个可能的对出现的次数 . 我发现的最接近的是 table() ,它返回16个可能的值,这不是我需要的 . 我,我试试

test=as.data.frame(table(data[,1:2]))

它将两列作为测试提供给表 . 我得到的是一个列举9个“可能”组合的矩阵 - 我猜它的作用是简单地交叉引用每个列值并计算它出现的次数 .

编辑:我意识到表格的第三列中的非零条目是我想要的,但我最终需要它来执行24个集合的事情,所以它应该尽可能自动化 .

2 回答

  • 3

    鉴于集合数量很多(24), table 可能会创建太多组合 . 您可以使用此替代方法:

    data$count <- 1
    aggregate(count ~ ., data, FUN = sum)
    #    col1 col2 count
    # 1  0.00  0.0     4
    # 2 -2.50  0.9     1
    # 3 -0.25  0.9     2
    # 4 -0.77  2.9     1
    
  • 0

    子集 test 删除零值:

    test=as.data.frame(table(data[,1:2]))
    test <- test[which(!test$Freq==0),]
    
    ##    col1 col2 Freq
    ##4      0    0    4
    ##5   -2.5  0.9    1
    ##7  -0.25  0.9    2
    ##10 -0.77  2.9    1
    

相关问题