簡體   English   中英

有沒有辦法粘貼2個“ftable”object?

[英]Is there a way to paste 2 "ftable" object?

我正在使用svybysurvey中得出一些加權比率及其標准偏差和變異系數,我使用下面的代碼生成一個三向表,它為我提供了subocup與男性遠程Hombre_subocup/ocup ,女性的ocup的比率遠程Mujer_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

但我還需要比率的總值(沒有 SEX),所以我使用這段代碼並得到這個 output:

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

這將是沒有任何分層的比率值(一個簡單的雙向表)。

我想做的是將最后的output粘貼到前者,所以我在同一張表中得到男性比例列,女性比例列和總比例列,所以它或多或少應該是這樣的:

在此處輸入圖像描述

我不介意“總計”列是否排在第一位。

解決方案是先組合,然后ftable 讓我們使用內置數據集來執行此操作:

> a<-svyby(~api.stu,denom=~enroll, ~stype+sch.wide, dclus1,svyratio)
> b<-svyby(~api.stu,denom=~enroll, ~stype, dclus1,svyratio)
> a
      stype sch.wide api.stu/enroll se.api.stu/enroll
E.No      E       No      0.8794583        0.01429043
H.No      H       No      0.8386232        0.01170588
M.No      M       No      0.8390440        0.01478048
E.Yes     E      Yes      0.8508618        0.01231925
H.Yes     H      Yes      0.8286597        0.01622480
M.Yes     M      Yes      0.8589915        0.01272169
> b
  stype api.stu/enroll se.api.stu/enroll
E     E      0.8532672        0.01253361
H     H      0.8300683        0.01472607
M     M      0.8536738        0.01114203

它們有不同的列名,但我們可以解決這個問題

>  b$sch.wide<-"Total"
> b
  stype api.stu/enroll se.api.stu/enroll sch.wide
E     E      0.8532672        0.01253361    Total
H     H      0.8300683        0.01472607    Total
M     M      0.8536738        0.01114203    Total

現在把它們結合起來

> ftable(rbind(a,b))
               sch.wide             No            Yes          Total
                        api.stu/enroll api.stu/enroll api.stu/enroll
stype                                                               
E     svyratio              0.87945833     0.85086183     0.85326723
      SE                    0.01429043     0.01231925     0.01253361
H     svyratio              0.83862316     0.82865975     0.83006825
      SE                    0.01170588     0.01622480     0.01472607
M     svyratio              0.83904396     0.85899149     0.85367375
      SE                    0.01478048     0.01272169     0.01114203

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM