【问题标题】:How to produce an R count matrix如何生成 R 计数矩阵
【发布时间】:2013-11-18 09:52:38
【问题描述】:

在 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

如何获得矩阵中两个特定列名的计数结果,该矩阵具有列:所有唯一的饮料,行:所有唯一的名称和单元格:频率(如下所示)?

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

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

【问题讨论】:

    标签: r matrix count plyr


    【解决方案1】:

    您需要一个列联表,您可以使用table 创建它:

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

    【讨论】:

    • 谢谢罗兰。我编辑了我的问题:我实际上希望能够专门命名我想要使用的列(而不是 bevs[,-3]),因为我的 data.frame 实际上包含许多列。我该怎么做?
    • 我已编辑答案以适应此要求。但是,您可能会受益于阅读 R 的一些介绍以更好地理解子集。
    • 是的,我意识到我要求的修改确实非常简单。谢谢!
    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2021-09-27
    • 2013-11-05
    • 2021-02-08
    相关资源
    最近更新 更多