2017-10-05 46 views
-1

對於以下數據集:計算的R奇數比當存在多於兩個類別

1 2 3 4 5 
    yes 181 93 141 186 198 
    No 14 11 11 23 21 

這是數據集 data_frame(rating=1:5, No=c(167,82, 132, 182, 200), Yes=c(28, 22, 20, 27, 29))

0意味着頭痛的存在和1名不存在頭痛,1〜5分顯示藥物依從率。我如何計算這個數據的奇數比例?這是我的代碼:

library (epiR) 
epi.2by2(tbl_dow, method ='cohort.count', conf.level= 0.95) 

但沒有工作。它具有以下錯誤:

Error in data.frame(est = cmOR.p, lower = cmOR.l, upper = cmOR.u) : 
    arguments imply differing number of rows: 0, 1 
+0

請提供可重複的例子。你能輸入()重現這個數據嗎? 'dput(tbl_dow)'。 –

+0

@ Hack-R,我編輯了這個問題。現在好嗎? – Mary

+0

函數'data_frame()'從哪裏來?你的意思是'data.frame()'?如果是這樣,這是行不通的,因爲'epi.2by2'接受類'table'的對象而不是data.frame。 「輸入()」數據可能真的更好。 –

回答

0

數據

df1 <- structure(list(X1 = c(181L, 14L), X2 = c(93L, 11L), X3 = c(141L, 
11L), X4 = c(186L, 23L), X5 = c(198L, 21L)), .Names = c("X1", 
"X2", "X3", "X4", "X5"), class = "data.frame", row.names = c("0", 
"1")) 

假設你希望每次0/1每個類別的機率比,只需使用適用於:

apply(df1,2, FUN=function(x) x[[2]]/sum(x)) 

     X1   X2   X3   X4   X5 
0.07179487 0.10576923 0.07236842 0.11004785 0.09589041 
+2

我認爲她正在試圖在類「table」的對象上做這件事。這就是爲什麼我讓她「輸()」。 –