【问题标题】:Making simple frequency table制作简单的频率表
【发布时间】:2018-01-17 14:07:14
【问题描述】:

我正在尝试在 R 中制作一个简单的表格。我拥有的数据是

9, 28, 14, 29, 21, 27, 15, 23, 23, 10, 31, 23, 
16, 26, 22, 17, 19, 24, 21, 20, 26, 20, 16, 14, 21.

我想要做的是从 5 到 35 创建 6 个相等的间隔,并计算每个间隔中有多少个数字。然后我想创建一个表格,显示每个间隔的频率、相对频率和百分比。我想要看起来像这样的东西:

Interval   Frequency   Relative Frequency   Percentage
[5, 10]     2           .08                  8
(10, 15]    3           .12                  12
(15, 20]    6           .24                  24
(20, 25]    8           .32                  32
(25, 30]    5           .2                   2
(30, 35]    1           .04                  4

我试过了

data <- c(9, 28, 14, 29, 21, 27, 15, 23, 23, 10, 31, 23, 16, 26, 22, 
17, 19, 24, 21, 20, 26, 20, 16, 14, 21)
intervals = c('[5, 10]', '(10, 15]', '(15, 20]', '(20, 25]', '(25, 
30]', '(30, 35]')
frequencies <- hist(data, breaks=seq(5,35,l=7))
table(intervals, frequencies$counts, frequencies$density * 5, 
frequencies$density * 500)

但它不起作用。

【问题讨论】:

    标签: r


    【解决方案1】:

    有很多方法可以做到这一点,但从cut将数据放入箱中开始,您可以调用tableas.data.frame.table 返回一个与您想要的非常接近的 data.frame。您可以使用prop.table 添加relative 列;而percent 正好是 100 倍。

    x <- c(9, 28, 14, 29, 21, 27, 15, 23, 23, 10, 31, 23, 16, 26, 22, 17, 19, 24, 21, 20, 26, 20, 16, 14, 21)
    
    df <- as.data.frame(table(cut(x, seq(5, 35, 5))))
    df$relative <- prop.table(df$Freq)
    df$percent <- df$relative * 100
    
    df
    #>      Var1 Freq relative percent
    #> 1  (5,10]    2     0.08       8
    #> 2 (10,15]    3     0.12      12
    #> 3 (15,20]    6     0.24      24
    #> 4 (20,25]    8     0.32      32
    #> 5 (25,30]    5     0.20      20
    #> 6 (30,35]    1     0.04       4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 2011-12-10
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多