2016-06-27 84 views
1
ex1 = sample(50, x=c("A","B"), replace=TRUE) 
ex2 = sample(50, x=c("A","B"), replace=TRUE) 
getDescriptionStatsBy(factor(ex1),ex2,html=TRUE,useNA="no",statistics=TRUE,add_total_col="last」) 

與useNA =「否」或useNA =「ifany」的水平,我得到顯示二進制結果的getDescriptionStatsBy

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

但useNA =‘總是’,我得到

 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%)" 「" 

有沒有辦法強制使用useNA =「ifany」顯示二元結果(A和B)的兩個級別?儘管對我來說顯而易見的是,如果沒有丟失數據,則只能顯示行的「A」(並推斷B = 1-A),我的一些colle agues似乎更喜歡總是顯示「A」和「B」。

回答

1

我能夠通過使用包裝函數與useNA刪除「缺少」行=「總是」

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),] 

注意在上面回答我的問題,我設置add_total_col = FALSE,因此看上去對於n0 ==長度(r);如果add_total_col =「last」,我會尋找n0 ==(length(r)+1)