2017-04-09 170 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