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

Convert Data table to Frequency table correctly with weights

问题来了

有了这个数据table

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

这考虑了权重和整个数据 table 但是

无法给我包含#NA 计数的百分比

(只给出有效的百分比计数)

包 'questionr' 中的函数 'freq' 给出了这一点。 在 "val%" 列

之前查看额外的“%”列

questionr::freq(dt$Type)

. n % val%

B 4 50.0 57.1<br> C 1 12.5 14.3<br> E 2 25.0 28.6<br> 不适用 1 12.5 不适用<br> 4行

但是这个第二个函数不接受

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

2.Entire 数据 table(而不是指定单独的列)

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

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