【问题标题】:Group by crosstab in R在 R 中按交叉表分组
【发布时间】:2013-06-16 20:32:26
【问题描述】:

我正在尝试在 R 中做一些相当简单的事情(我认为),但不知道如何做。 SPSS 可以为我做的一件好事是一个分类变量的汇总统计(即平均值)的快速表格。

所以我在我的数据框中有一个名为 TC 代码的类别和一个名为 AMT 的数字变量。我想要的只是 TC 代码的平均 AMT

TC Code    AMT Ave
A          $ Ave value
B          $ Average Value
etc

我一直在尝试用 CrossTable 函数做一些事情,但没有成功。

【问题讨论】:

  • 这在 R 中是微不足道的,如何做到这一点的例子在网络上比比皆是。在众多选项中,请参阅 aggregatebyddplyplyr 包)。
  • 还有tapply
  • 也许我越来越近了。使用答案 1 中列出的聚合代码。聚合(res,'FAC_AMT' ~ 'TC Code',mean)。但出现错误:aggregate.data.frame 中的错误(res, "FAC_AMT" ~ "TC Code", mean) : 'by' must be a list
  • 也试过了:aggdata
  • please watch video #029 可能还有它之前的 28 ;)

标签: r


【解决方案1】:

请提供可重现的代码(生成一些数据并说明您需要什么)。

一些数据:

set.seed(45)
df <- data.frame(code = sample(LETTERS[1:8], 
           50, replace=TRUE), val = sample(50))

使用aggregate

aggregate(data = df, val ~ code, mean)
  code      val
1    A 19.33333
2    B 26.00000
3    C 27.72727
4    D 21.50000
5    E 29.66667
6    F 30.20000
7    G 13.00000
8    H 24.50000

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    相关资源
    最近更新 更多