如何生成R计数矩阵

时间:2013-11-18 09:52:38

标签: r matrix count plyr

在R中,我可以使用我感兴趣的特定列名返回计数结果,如下所示。

require("plyr")
bevs <- data.frame(cbind(name = c("Bill", "Llib"), drink = c("coffee", "tea", "cocoa", "water"), cost = seq(1:8)))
count(bevs, c("name", "drink"))

# produces
  name  drink freq
1 Bill  cocoa    2
2 Bill coffee    2
3 Llib    tea    2
4 Llib  water    2

如何在包含列的矩阵中获取两个特定列名的计数结果:所有唯一饮料,行:所有唯一名称和单元格:freqs(如下所示)?

     cocoa  coffee tea water
Bill   2      2     0   0
Llib   0      0     2   2

P.S:显然,解决方案不需要使用plyr。

1 个答案:

答案 0 :(得分:1)

您需要一个列联表,您可以使用table

创建
table(bevs[, c("name", "drink")])
#      drink
#name   cocoa coffee tea water
#  Bill     2      2   0     0
#  Llib     0      0   2     2