计算R中唯一的分类变量对

时间:2014-07-24 04:47:40

标签: r frequency

如果我有这些数据:

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)。独特对的频率怎么样?

2 个答案:

答案 0 :(得分:2)

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 

答案 1 :(得分:1)

这是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