r - 在ftable中添加列和行总计

标签 r

我使用 ftable 来创建这样的表:

                HPV-16 negative positive
Sex    HPV-55                           
female negative            2341        4
       positive              11        0
male   negative            2140       23
       positive              25        2

这里是dput代码。

structure(c(2341L, 11L, 2140L, 25L, 4L, 0L, 23L, 2L), .Dim = c(4L, 
2L), class = "ftable", row.vars = list(Sex = c("female", "male"
), `HPV-55` = c("negative", "positive")), col.vars = list(`HPV-16` = c("negative", 
"positive")))

以及原始数据的样本数据:

structure(list(sex = structure(c(2L, 2L, 1L, 1L, 2L, 1L, 2L, 
2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L), .Label = c("female", 
"male"), class = c("labelled", "factor"), label = "sex"), orxh16 = structure(c(1L, 
1L, 1L, NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("negative", "positive"), class = c("labelled", 
"factor"), label = "hpv16"), orxh55 = structure(c(1L, 1L, 1L, 
NA, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L), .Label = c("negative", "positive"), class = c("labelled", 
"factor"), label = "hpv55")), row.names = c(NA, -20L), class = c("tbl_df", 
"tbl", "data.frame"))

我尝试了 addmargins:addmargins(tab1, FUN = list(Total=sum), quiet = T),但是行名和布局等详细信息将丢失。

              Total
      2341  4  2345
        11  0    11
      2140 23  2163
        25  2    27
Total 4517 29  4546

我想知道是否有一种方法可以添加列和行的总数,同时让表格的布局看起来像以前一样(如下)?谢谢!

                HPV-16 negative positive     Total
Sex    HPV-55                           
female negative            2341        4      2345
       positive              11        0       11
male   negative            2140       23      2163
       positive              25        2       27
Total                      4517       29      4546

最佳答案

刚刚找到一种方法,使用 summarytool::ctable。虽然表格由分组变量分隔,但它可以提供与 ftable 中类似的表格。

tab2 <- with(hpv2, stby(list(x=orxh55, y=orxh16), 
    sex, ctable, prop="n", useNA="no", dnn = c("HPV_55", "HPV-16")))
Cross-Tabulation  
HPV_55 * HPV-16  
Data Frame: hpv2  
Group: sex = female  

---------- -------- ---------- ---------- -------
             HPV-16   negative   positive   Total
    HPV_55                                       
  negative                2341          4    2345
  positive                  11          0      11
     Total                2352          4    2356
---------- -------- ---------- ---------- -------

Group: sex = male  

---------- -------- ---------- ---------- -------
             HPV-16   negative   positive   Total
    HPV_55                                       
  negative                2140         23    2163
  positive                  25          2      27
     Total                2165         25    2190

关于r - 在ftable中添加列和行总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60154976/

相关文章:

R 项目组合 3 组

R SVM 预测

r - 添加两个不同大小和子集的数据框

r - 在 R 中,当并非所有因素组合都存在时,如何使用 "aggregate"或 "by"?

macos - 使用 sendmailR 包从 R 发送电子邮件

r - 使用 ":"(示例 : subset column B and column D until F))根据列名对数据帧进行子集化

r - 在 FactoExtra 包中的 fviz_pca 函数中自定义点形状

r - 在 R 中查找特定月份的第一天

R Shinyapps 高级设置

r - 如何使用 glmnet 逻辑回归获得 0 到 1 之间的概率