使用权重正确将数据表转换为频率表

时间:2019-05-21 22:21:22

标签: r datatable frequency

问题出在这里

使用此数据表

dt <- data.table( Type=c("E", "E", "B", "B","B","B","C",NA), ID=c(1,2,3,4,5,6,7,6), Frequency=c(17, 6, 3,8, 12,8,9,10))

summarytools程序包频率函数给出以下结果:

summarytools::freq(dt,weights=dt$Frequency)

. Freq % Valid % Valid Cum. % Total % Total Cum.


    B   31.00     49.21          49.21     42.47          42.47
    C    9.00     14.29          63.49     12.33          54.79
    E   23.00     36.51         100.00     31.51          86.30
 <NA>   10.00                              13.70         100.00
Total   73.00    100.00         100.00    100.00         100.00

这要考虑权重,还要考虑整个数据表,但是

不能给我百分比,包括#NA计数

(仅提供有效的百分比计数)

来自软件包“ questionr”的函数“ freq”给出了结果。 在“ val%”列之前查看其他“%”列

questionr::freq(dt$Type)

. n % val%

B 4 50.0 57.1
C 1 12.5 14.3
E 2 25.0 28.6
NA 1 12.5 NA
4 rows

但是第二个功能不接受

1.weights(在我的示例中为列频率)

2。整个数据表(而不是指定单个列)

也许有更好的功能,甚至还有一些灵巧的代码要添加 第一个功能中的“%”功能?谢谢!

1 个答案:

答案 0 :(得分:1)

我从第一个代码中得到了更复杂的结果(包含三个元素的列表)。此外,还有一列:“%Total”,它似乎已经包含您所请求的内容。也许您正在使用该软件包的过时版本?