2013-05-14 13 views
7

Tôi đã cố gắng học cách sử dụng hàm summary() - từ gói Hmisc để tạo ra các âm thanh chéo bao gồm các thử nghiệm chisquared. Với sự giúp đỡ từ hội đồng quản trị này, tôi gần như ở đó. Tôi chỉ không thể tìm ra cách để có được tỷ lệ phần trăm hàng thay vì tỷ lệ cột.Hàng Tỷ lệ phần trăm trong độ ổn định được tạo ra từ bản tóm tắt() từ gói Hmisc

#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) 

nào được tôi này: enter image description here

này được tôi cột-tỷ lệ phần trăm. Tôi đang tìm kiếm một cách để biến nó xung quanh để tôi nhận được phần trăm hàng thay thế. Tôi đã tìm kiếm tài liệu Hmisc cho "hàng" và "cột" và "phần trăm" nhưng không may mắn. Các summary.formular() chức năng có đối số tùy chọn "vui vẻ" nhưng nó là trên đầu của tôi để có được nó để làm tỷ lệ phần trăm hàng ...

Xin vui lòng giúp

Trả lời

5

Nếu bạn hack xung quanh một chút với Hmisc: : formatCats. Cụ thể là, thay đổi MARGIN từ 2 thành 1. Bạn có thể đến đó.

Một phần của formatCats

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) 

Thay đổi để

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) 

tôi đã thực hiện một ý chính tại https://gist.github.com/jwijffels/5599349 với chức năng này được sửa đổi gọi myformatCats. Nhận nó, chỉ định nó trong không gian tên Hmisc để ghi đè lên HMisc :: formatCats và nó in ra pct col.

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

Vì một lý do nào đó tôi không thể thêm nhận xét. Tôi đã thử các giải pháp của jwijjfels nhưng nó đã không làm việc. Hóa ra Hmisc đã thay đổi như vậy trong Hmisc 3.14-3, bạn phải thực hiện các thay đổi sau:

Chỉnh sửa dòng 15-21 trong Hmisc ::: formatĐịnh nghĩa sau và thay thế hàm này bằng formatCats như được mô tả bởi jwijffels.

denom <- if (type == 1) 
    apply(tab, 1, sum) 
    else group.freq 
pct <- if (ncol(tab) > 1) 
    sweep(tab, 1, denom, FUN = "/") 
    else tab/denom 
Các vấn đề liên quan