我正在使用survey
中的svyby
功能制作一些带加权比率的标准差和变异系数,我使用以下代码生成一个三维表格,其中提供了男性远程办公者Hombre_subocup/ocup
,女性远程办公者Mujer_subocup/ocup
以及非远程办公男性和女性的subocup
与ocup
之比。
tasasub_tele_sex319<-ftable(svyby(~subocup, by= ~ tele_sinco11 + SEX, subset(sd319, EDA >= 15 & POS_OCU != "Trabajadores sin pago"), denominator = ~ocup, deff= T, level = 0.9, vartype = c("cv", "se"), na.rm.by = T,svyratio))
tasasub_tele_sex319
得到:
SEX_
tele_sinco11_ Hombre_subocup/ocup Mujer_subocup/ocup
No teletrabaja_svyratio 0.084149460 0.080230723
No teletrabaja_cv 0.001782653 0.002152965
No teletrabaja_SE 0.021184369 0.026834665
No teletrabaja_DEff 3.896438704 3.593164119
Teletrabaja_svyratio 0.036515518 0.027384514
Teletrabaja_cv 0.003075113 0.002250647
Teletrabaja_SE 0.084213867 0.082186856
Teletrabaja_DEff 2.325352651 2.039503624
但我也需要除了“性别”以外的比例总值,所以我使用这段代码并获得以下输出:
tasasub_tele_tot319<-ftable(svyby(~subocup, by= ~ tele_sinco11, subset(sd319, EDA >= 15 & POS_OCU != "Trabajadores sin pago"), denominator = ~ocup, deff= T, level = 0.9, vartype = c("cv", "se"), na.rm.by = T,svyratio))
tasasub_tele_tot319
>tasasub_tele_tot319
subocup/ocup
tele_sinco11
No teletrabaja svyratio 0.082730583
cv 0.001537011
SE 0.018578512
DEff 4.722529515
Teletrabaja svyratio 0.031475714
cv 0.001902234
SE 0.060434971
DEff 2.299934447
这将是没有任何分层的比率值(一个简单的双向表)。
我想要做的是将最后的输出粘贴到前面,这样我就可以在同一张表格中得到男性比率列、女性比率列和总比率列,更或者它应该看起来像这样:
如果“总计”列在第一位也无妨。
?svyratio
或?svyby
中提取一些起始代码。 - Anthony Damicoftable()
时出现了这个错误:Error in tmp[ind] <- charQuote(lst[[i]]) : only 0's may be mixed with negative subscripts
。 - estebandput(tasasub_tele_tot319)
和dput(tasasub_tele_sex319)
创建一个最小可重现的示例。 - Anthony Damico