在getDescriptionStatsBy中显示二进制结果的两个级别

在getDescriptionStatsBy中显示二进制结果的两个级别,r,R,使用useNA=“no”或useNA=“ifany”,我得到 但使用useNA=“总是”,我会 A B Total P-value A "13 (59.1%)" "16 (57.1%)" "29 (58.0%)" "1.0” 有没有办法用useNA=“ifany”强制显示二元结果的两个级别(a和B)?虽然我很清楚,如果没有丢失的数据,只能显示“a”行(并推断B=1-a),但我的一些同事似乎更喜欢“a”和“B”始终显示。我可以通

使用useNA=“no”或useNA=“ifany”,我得到

但使用useNA=“总是”,我会

   A            B            Total        P-value
A  "13 (59.1%)" "16 (57.1%)" "29 (58.0%)" "1.0” 

有没有办法用useNA=“ifany”强制显示二元结果的两个级别(a和B)?虽然我很清楚,如果没有丢失的数据,只能显示“a”行(并推断B=1-a),但我的一些同事似乎更喜欢“a”和“B”始终显示。

我可以通过使用包装器函数来回答自己的问题,该函数使用useNA=“始终”删除“缺少”行

注意,在上面,我将add_total_col=FALSE,然后查找n0==length(r);如果add_total_col=“last”,我将查找n0==(length(r)+1)

   A            B            Total        P-value
A  "13 (59.1%)" "16 (57.1%)" "29 (58.0%)" "1.0” 
        A            B            Total        P-value    
A       "13 (59.1%)" "16 (57.1%)" "29 (58.0%)" "1.0"  
B       "9 (40.9%)"  "12 (42.9%)" "21 (42.0%)" ""     
Missing "0 (0.0%)"   "0 (0.0%)"   "0 (0.0%)"   “" 
k2 = getDescriptionStatsBy(factor(ex1),ex2,html=TRUE,useNA="always",statistics=TRUE,add_total_col=FALSE)

r = table(ex2)
n0 = apply(k2,1,function(x) sum(x=="0 (0%)" | x=="0 (0.0%)"))
rmv = which(rownames(k2)=="Missing" & n0==length(r))
k2[-as.numeric(rmv),]