【问题标题】:Counting unique pairs of categorical variables in R [duplicate]计算R中唯一的分类变量对[重复]
【发布时间】:2014-07-24 04:47:40
【问题描述】:

如果我有这些数据:

One <- c(rep("X",4),rep("Y",3),rep("Z",2))
Two <- c(rep("A",2),rep("B",6),rep("C",1))

df <- data.frame(One,Two) 

  One Two
1   X   A
2   X   A
3   X   B
4   X   B
5   Y   B
6   Y   B
7   Y   B
8   Z   B
9   Z   C

我想找到唯一对(一,二)的频率。我知道如果我想在One 列中找到不同元素的频率,我会做table(df$one)。唯一对的频率如何?

【问题讨论】:

  • 试试table(df)。但也许不是您正在寻找的输出。
  • @Pascal - 那么可能是data.frame(table(df))
  • @thelatemail 当然可以。简单高效。

标签: r frequency


【解决方案1】:
table(as.character(interaction(df)))

或者

library(qdap)
table(paste2(df))

# X.A X.B Y.B Z.B Z.C 
#   2   2   3   1   1 

【讨论】:

    【解决方案2】:

    这是dplyr 解决方案。

    library(dplyr)
    
    df %>% group_by(One,Two) %>%
          summarize(Count = n())
    

    这会返回一个像这样的数据框

    Source: local data frame [5 x 3]
    Groups: One
    
      One Two Count
    1   X   A     2
    2   X   B     2
    3   Y   B     3
    4   Z   B     1
    5   Z   C     1
    

    【讨论】:

    • 应该注意的是,这忽略了不存在的 One x Two 的可能组合(与所有其他答案一样)。
    • 知道如何获得一个包含所有 0 频率对的表格吗?
    • 我得到这个错误 summarise(Count = n()) 错误:这个函数不应该被直接调用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2014-11-19
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    相关资源
    最近更新 更多