2015-11-05 68 views
0

我試圖複製一個SAS頻率計數CHISQ檢驗,和CHISQ檢驗,在R.複製SAS加權頻率和R中

將SAS數據和代碼:

DATA test; 
    INPUT sex $ group weight ; 
    DATALINES; 
F 1 0.8 
M 1 0.9 
F 1 1.0 
M 1 1.1 
F 1 1.2 
M 1 1.3 
F 2 1.4 
M 2 1.5 
F 2 1.6 
M 2 1.7 
F 1 0.8 
M 1 0.9 
F 1 1.0 
M 1 1.1 
F 1 1.2 
M 1 1.3 
F 2 1.4 
M 2 1.5 
F 2 1.6 
M 2 1.7 
F 1 0.8 
M 1 0.9 
F 1 1.0 
M 1 1.1 
F 1 1.2 
M 1 1.3 
F 2 1.4 
M 2 1.5 
F 2 1.6 
M 2 1.7 
; 


/* result1 (unweighted) */ 
proc freq data=test; 
tables sex * group/chisq ; 
run; 


/* result2 (weighted) */ 
proc freq data=test; 
tables sex * group/chisq ; 
weight weight; 
run; 

SAS-RESULT1(加權)可以以下中的R

enter image description here

test <- structure(list(sex = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("F", "M"), class = "factor"), 
    group = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
    2L, 2L, 2L), weight = c(0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 
    1.5, 1.6, 1.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 
    1.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7)), .Names = c("sex", 
"group", "weight"), class = "data.frame", row.names = c(NA, -30L 
)) 


table(test$sex, test$group) 
chisq.test(table(test$sex, test$group)) 
被複制

在R:

enter image description here

SAS-RESULT2,我不知道如何在R請勿:

回答

2
library(weights) 
wtd.chi.sq(test$sex, test$group, weight = test$weight) 
#  Chisq   df  p.value 
#0.002215526 1.000000000 0.962457933