在 qwraps2 中使用 summary_table 时出错。不正确 data.frame?

Error when using summary_table in qwraps2. Not correct data.frame?

我是 R 的新手,所以希望这不是太基础..
我正在尝试使用 qwraps2 创建摘要 table。在按照编写良好的教程没有问题 (qwraps2) 之后,我 运行 在应用我自己的数据集时遇到了错误。

library(qwraps2)    
summary_tbl1 <-  
  list("Gender" =  
     list("Female" = ~ qwraps2::n_perc0(.data$gender == 0),  
          "Male" = ~ qwraps2::n_perc0(.data$gender == 1)),  
  "Mean age (sd)" = ~ qwraps2::mean_sd(.data$inage),  
  "Age categories" =  
     list("65-74" = ~ qwraps2::n_perc0(.data$age_cat == 1),  
          "75-84" = ~ qwraps2::n_perc0(.data$age_cat == 2),  
          "> 85" = ~ qwraps2::n_perc0(.data$age_cat == 3))  
   )

#making the overall column
c_overall <- summary_table(my_dataset, summary_tbl1)

Error: x must be a formula Call rlang::last_error() to see a backtrace

回溯如下:

12. stop(cnd)  
11. rlang::abort(x)  
10. rlang::f_rhs(y)  
9. FUN(X[[i]], ...)  
8. lapply(s, function(y) { rlang::f_rhs(y) })  
7. FUN(X[[i]], ...)  
6. lapply(summaries, function(s) { lapply(s, function(y) { rlang::f_rhs(y) })...  
5. eval(lhs, parent, parent)  
4. eval(lhs, parent, parent)  
3. lapply(summaries, function(s) { lapply(s, function(y) { rlang::f_rhs(y) })...  
2. summary_table.data.frame(new_dataset, summary_tbl1)  
1. summary_table(new_dataset, summary_tbl1) 

我已经使用 as.data.frame 将数据集转换为 data.frame,因为这是 summary_table 所要求的,据我所知。

我的数据集是从 STATA(Haven 包)导入的,这可能是答案吗?如果是的话 - 关于如何克服的任何想法?

或者它可能与我的数据集大小有关 (80.300 obs)?

提前致谢

添加了摘要读数:

summary_tbl1  
$`Gender`  
$`Gender`$`Female`  
~qwraps2::n_perc0(.data$gender == 0)  
$`Gender`$Male  
~qwraps2::n_perc0(.data$gender == 1)  
$`Mean age (sd)`  
~qwraps2::mean_sd(.data$inage)  
$`Age categories`  
$`Age categories`$`65-74`  
~qwraps2::n_perc0(.data$age_cat == 1)  
$`Age categories`$`75-84`  
~qwraps2::n_perc0(.data$age_cat == 2)  
$`Age categories`$`> 85`  
~qwraps2::n_perc0(.data$age_cat == 3) 

您似乎已将所有内容收集到一个名为 'Gender' 的列表中。看来你的数据格式是性别[(男性,女性),mean_age,age_categories()]。所以你有一个名为 genders 的列表,其中包含一个未命名列表、一个数字名称 mean_age 和一个名为 age_categories 的命名列表。

@phi 回答正确。更详细地解释:预期的摘要 成为列表的列表。也就是说,一个列表 hwere 每个元素都是一个列表。

让我们看看所提供摘要的结构:(编辑: 省略 .data 代词,因为它不再被推荐为 qwraps2 版本 0.5.0,2020 年 9 月 1 日发布)。

summary_tbl1 <-
  list("Gender" =
       list("Female" = ~ qwraps2::n_perc0(gender == 0),
            "Male"   = ~ qwraps2::n_perc0(gender == 1)
           ),
       "Mean age (sd)" = ~ qwraps2::mean_sd(inage),
       "Age categories" =
         list("65-74" = ~ qwraps2::n_perc0(age_cat == 1),
              "75-84" = ~ qwraps2::n_perc0(age_cat == 2),
              "> 85"  = ~ qwraps2::n_perc0(age_cat == 3)
             )
       )

str(summary_tbl1, max.level = 1)
#> List of 3
#>  $ Gender        :List of 2
#>  $ Mean age (sd) :Class 'formula'  language ~qwraps2::mean_sd(inage)
#>   .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  $ Age categories:List of 3

第一个和第三个元素是列表,但第二个元素是一个公式。 摘要的正确规范是:

summary_tbl1 <-
  list("Gender" =
         list("Female" = ~ qwraps2::n_perc0(gender == 0),
              "Male"   = ~ qwraps2::n_perc0(gender == 1)),
       "inage" =
         list("Mean age (sd)" = ~ qwraps2::mean_sd(inage)),
       "Age categories" =
         list("65-74" = ~ qwraps2::n_perc0(age_cat == 1),
              "75-84" = ~ qwraps2::n_perc0(age_cat == 2),
              "> 85"  = ~ qwraps2::n_perc0(age_cat == 3))
       )

str(summary_tbl1, max.level = 1)
#> List of 3
#>  $ Gender        :List of 2
#>  $ inage         :List of 1
#>  $ Age categories:List of 3

reprex package (v0.3.0)

于 2020-09-01 创建
devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.2 (2020-06-22)
#>  os       macOS Catalina 10.15.6      
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  ctype    en_US.UTF-8                 
#>  tz       America/Denver              
#>  date     2020-09-01                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.0.0)
#>  backports     1.1.9   2020-08-24 [1] CRAN (R 4.0.2)
#>  callr         3.4.3   2020-03-28 [1] CRAN (R 4.0.0)
#>  cli           2.0.2   2020-02-28 [1] CRAN (R 4.0.0)
#>  crayon        1.3.4   2017-09-16 [1] CRAN (R 4.0.0)
#>  desc          1.2.0   2018-05-01 [1] CRAN (R 4.0.0)
#>  devtools      2.3.1   2020-07-21 [1] CRAN (R 4.0.2)
#>  digest        0.6.25  2020-02-23 [1] CRAN (R 4.0.0)
#>  ellipsis      0.3.1   2020-05-15 [1] CRAN (R 4.0.0)
#>  evaluate      0.14    2019-05-28 [1] CRAN (R 4.0.0)
#>  fansi         0.4.1   2020-01-08 [1] CRAN (R 4.0.0)
#>  fs            1.5.0   2020-07-31 [1] CRAN (R 4.0.2)
#>  glue          1.4.2   2020-08-27 [1] CRAN (R 4.0.2)
#>  highr         0.8     2019-03-20 [1] CRAN (R 4.0.0)
#>  htmltools     0.5.0   2020-06-16 [1] CRAN (R 4.0.0)
#>  knitr         1.29    2020-06-23 [1] CRAN (R 4.0.0)
#>  magrittr      1.5     2014-11-22 [1] CRAN (R 4.0.0)
#>  memoise       1.1.0   2017-04-21 [1] CRAN (R 4.0.0)
#>  pkgbuild      1.1.0   2020-07-13 [1] CRAN (R 4.0.2)
#>  pkgload       1.1.0   2020-05-29 [1] CRAN (R 4.0.0)
#>  prettyunits   1.1.1   2020-01-24 [1] CRAN (R 4.0.0)
#>  processx      3.4.3   2020-07-05 [1] CRAN (R 4.0.0)
#>  ps            1.3.4   2020-08-11 [1] CRAN (R 4.0.2)
#>  R6            2.4.1   2019-11-12 [1] CRAN (R 4.0.0)
#>  remotes       2.2.0   2020-07-21 [1] CRAN (R 4.0.2)
#>  rlang         0.4.7   2020-07-09 [1] CRAN (R 4.0.2)
#>  rmarkdown     2.3     2020-06-18 [1] CRAN (R 4.0.0)
#>  rprojroot     1.3-2   2018-01-03 [1] CRAN (R 4.0.0)
#>  sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 4.0.0)
#>  stringi       1.4.6   2020-02-17 [1] CRAN (R 4.0.0)
#>  stringr       1.4.0   2019-02-10 [1] CRAN (R 4.0.0)
#>  testthat      2.3.2   2020-03-02 [1] CRAN (R 4.0.0)
#>  usethis       1.6.1   2020-04-29 [1] CRAN (R 4.0.0)
#>  withr         2.2.0   2020-04-20 [1] CRAN (R 4.0.0)
#>  xfun          0.16    2020-07-24 [1] CRAN (R 4.0.2)
#>  yaml          2.2.1   2020-02-01 [1] CRAN (R 4.0.0)
#> 
#> [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library