如何使用 r 函数 wtable 在加权 table 中显示零?

How to show zeros in weighted table with r function wtable?

我很欣赏 GDAtools 包中的函数 wtable,例如

GDAtools::wtable(mtcars$cyl,mtcars$gear,weights = mtcars$qsec, stat='freq')
        3     4     5   Sum
4    20,0 156,9  33,6 210,5
6    39,7  70,7  15,5 125,8
8   205,7        29,1      
Sum 265,4        78,2  

但是对于 cyl==8 & gear==4 组合,这显示空白而不是零。 因此我不能使用道具选项:

GDAtools::wtable(mtcars$cyl,mtcars$gear,weights = mtcars$qsec, stat='prop')
    3 4 5 Sum
4            
6            
8            
Sum   

也不与 prop.table:

prop.table(GDAtools::wtable(mtcars$cyl,mtcars$gear,weights = mtcars$qsec))
    3 4 5 Sum
4            
6            
8            
Sum  

只有 and/or 行的 rprop 和 cprob 没有空格才有效:

GDAtools::wtable(mtcars$cyl,mtcars$gear,weights = mtcars$qsec, stat='rprop')
       3    4    5 Sum
4    9,5 74,5 16,0 100
6   31,5 56,2 12,3 100
8     NA   NA   NA  NA
Sum   NA   NA   NA  NA
GDAtools::wtable(mtcars$cyl,mtcars$gear,weights = mtcars$qsec, stat='cprop')
        3  4     5 Sum
4     7,5 NA  43,0  NA
6    14,9 NA  19,8  NA
8    77,5 NA  37,2  NA
Sum 100,0 NA 100,0  NA

有没有办法在 wtable 中强制为零而不是空白?

空白值实际上是 NA 显示不同的值。您可以使用 is.na.

捕获它们
tab <- GDAtools::wtable(mtcars$cyl,mtcars$gear, weights=mtcars$qsec, stat='freq')
tab[is.na(tab)] <- 0
tab

#        3     4     5   Sum
#4    20.0 156.9  33.6 210.5
#6    39.7  70.7  15.5 125.8
#8   205.7   0.0  29.1   0.0
#Sum 265.4   0.0  78.2   0.0