2017-04-09 49 views
0

我有一個調查數據集與頻率權重(freq_wgt)。調查設計是多階段整羣抽樣。數據集如果跟隨。如何使用R中的頻率權重生成加權多階段表格(頻率以及百分比)?

sector <- c(1,2,1,2,1,2,1,2,1,2,2,2,1,1,2,1,2,1,2,2) 
sex <- c(2,1,2,2,2,1,2,1,2,1,1,1,1,2,2,1,2,1,2,2) 
Group <- c(1,2,3,3, 2,1,1,2,3,3,2,1,1,3,3,1,3,1,2,2) 
freq_wgt <- c(2,4,5,6,3,4,5,3,2,5,6,7,5,4,3,5,7,8,9,1) 
df <- data.frame(sector, sex, group, freq_wgt) 

df$sector <- factor(df$sector, levels = c(1,2), labels = c("Rural", "Urban")) 
df$sex <- factor(df$sex, levels = c(1,2), labels = c("Male", "Female")) 
df$group <- factor(df$group, levels = c(1,2,3), labels = c("STs", "SCs", "Others")) 

我想在應用頻率權重後生成以下種類的多層表(頻率以及列/行百分比)。

mytable <- ftable(xtabs(~ sector + sex + group, data= df)) 
print(mytable) 

注:我發現從Hmisc包wtd.table功能但不適合,因爲它僅產生一個級階層表。提前致謝。

回答

0

下面的設計假設是簡單的隨機抽樣。您需要查看技術文檔和/或?svydesign以瞭解如何使其適用於多階段整羣抽樣。

library(survey) 
my_design <- svydesign(~ 1 , data = df , weights = ~ freq_wgt) 
svytable(~ sector + sex + group , my_design) 
svyby(~ sector , ~ sex + group , my_design , svymean) 
svyby(~ sex , ~ sector + group , my_design , svymean) 
svyby(~ group , ~ sector + sex , my_design , svymean) 
+0

這是偉大的幫助先生.... – Biswa