特定类别的频率计数

问题描述:

我有一个这样的数据集.

I have a data set like this.

a <- structure(list(Prone = c("M", "N", "N", "N", "M", "N", "M", "N", "M", "M"), 
Type = c("A", "B", "C", "A", "A", "A", "B", "B", "C", "B"), 
Alc = c("A", "B", "N", "A", "A", "A", "B", "B", "B", "B"), 
Com = c("Y", "N", "Y", "Y", "Y", "Y", "Y", "N", "N", "Y")),
.Names = c("Prone", "Type", "Alc", "Com"), row.names = c(NA, -10L), class = "data.frame")
a
   Prone Type Alc Com
1      M    A   A   Y
2      N    B   B   N
3      N    C   N   Y
4      N    A   A   Y
5      M    A   A   Y
6      N    A   A   Y
7      M    B   B   Y
8      N    B   B   N
9      M    C   B   N
10     M    B   B   Y

我喜欢获取每个唯一行的频率计数,如下所示:

I like to get the frequency count of each unique row like the following:

  Prone Type Alc Com Freq
1     M    A   A   Y    2
2     M    B   B   Y    2
3     M    C   B   N    1
4     N    A   A   Y    2
5     N    B   B   N    2
6     N    C   N   Y    1

先谢谢了.

有很多方法可以做到这一点,下面是一个简单的plyr示例:

There are a lot of ways to do this, here is a simple plyr example:

> library(plyr)
> ddply(a,names(a),summarize,Freq=length(Prone))
  Prone Type Alc Com Freq
1     M    A   A   Y    2
2     M    B   B   Y    2
3     M    C   B   N    1
4     N    A   A   Y    2
5     N    B   B   N    2
6     N    C   N   Y    1