2013-05-14 22 views
7

Hmisc paketindeki özet() - işlevini, chisquared testlerini içeren çaprazlar oluşturmak için kullanmayı öğrenmeye çalışıyorum. Bu kurulun yardımıyla neredeyse oradayım. Sütun yüzdeleri yerine satır yüzdelerini nasıl elde edeceğimi anlayamıyorum. Bana alırSatır Hmsc paketinden özet() 'den oluşturulan üstbilgideki yüzdeler

#Data: 
v1 <- sample(letters[8:12],200,replace=TRUE) 
v2 <- sample(letters[1:2],200,replace=TRUE) 
month <- sample(month.name[7:9],200,replace=TRUE) 
df <- data.frame(v1,v2,month) 

#Table: 
latex( summary(month ~ v1 + v2 , data=df, method="reverse" ,test=TRUE),  exclude1=FALSE,file="",booktabs=TRUE,long=TRUE) 

bu: enter image description here

Bu bana sütun yüzdelerini alır. Bunun yerine çevirmek için bir yol arıyorum, bu yüzden satır yüzdelerini aldım. "Sıra" ve "sütun" ve "yüzde" için Hmisc belgelerini araştırdım ama şans yok. Eğer Hmisc ile biraz etrafına kesmek durumunda

cevap

5

Yardım Lütfen ... summary.formular() fonksiyonu "eğlence" isteğe bağlı argüman vardır ama buna satır yüzdeleri yaptırmak için kafamın bitti: : formatCats. Yani, MARGIN'i 2'den 1'e değiştirin. Oraya ulaşabilirsiniz.

denom <- if (type == 1) apply(tab, 2, sum) else group.freq 
pct <- 100 * (if (ncol(tab) > 1) sweep(tab, 2, denom, FUN = "/") else tab/denom) 

Değişim

denom <- if (type == 1) apply(tab, 1, sum) else group.freq 
pct <- 100 * (if (ncol(tab) > 1) sweep(tab, 1, denom, FUN = "/") else tab/denom) 

için formatCats arasında

Bölüm I myformatCats denilen bu değiştirilmiş fonksiyonu ile https://gist.github.com/jwijffels/5599349 bir özünü yaptı. Onu alın, Hmisc :: formatCats'ı geçersiz kılmak için Hmisc ad alanında atayın ve yazdιrιnι yazdιrιn.

require(Hmisc) 
require(devtools) 
source_gist("5599349") 
assignInNamespace(x="formatCats", value=myformatCats, ns="Hmisc") 

v1 <- sample(letters[8:12],200,replace=TRUE) 
v2 <- sample(letters[1:2],200,replace=TRUE) 
month <- sample(month.name[7:9],200,replace=TRUE) 
df <- data.frame(v1,v2,month) 
summary(month ~ v1 + v2 , data=df, method="reverse") 
+1

A.m.a.z.i.n.g .. –

0

Herhangi bir nedenle yorum ekleyemedim. Çözümü jwijjfels denedim ama işe yaramadı. Hmisc, Hmisc 3.14-3'te değiştiğinden, şu değişiklikleri yapmalısınız:

Hmisc ::: biçimindeki satır 15-21'i aşağıdaki şekilde değiştirin ve bu işlevi jwijffels tarafından açıklandığı gibi formatCats ile değiştirin.

denom <- if (type == 1) 
    apply(tab, 1, sum) 
    else group.freq 
pct <- if (ncol(tab) > 1) 
    sweep(tab, 1, denom, FUN = "/") 
    else tab/denom