我刚开始使用R,所以希望它不太基本。.
我正在尝试使用qwraps2
创建一个摘要表。遵循精心编写的教程,没有任何问题(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)
错误:
x
必须是公式调用rlang::last_error()
来查看回溯
回溯信息如下:
- stop(cnd)
- rlang :: abort(x)
- rlang :: f_rhs(y)
- FUN(X [[i]],...)
- lapply(s,function(y){rlang :: f_rhs(y)})
- FUN(X [[i]],...)
- lapply(摘要,函数{{lapply(s,function(y){rlang :: f_rhs(y)})...
- eval(lhs,父母,父母)
- eval(lhs,父母,父母)
- lapply(摘要,函数{{lapply(s,function(y){rlang :: f_rhs(y)})...
- summary_table.data.frame(new_dataset,summary_tbl1)
- summary_table(new_dataset,summary_tbl1)
我已经使用data.frame
将数据集转换为as.data.frame
,这是summary_table
所需要的,据我所知。
我的数据集来自STATA(Haven软件包),这可能是答案,如果是这样的话-关于如何克服的任何想法?
还是与我的数据集大小(80.300磅)有关?
预先感谢
添加了摘要读数:
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)
答案 0 :(得分:0)
您似乎已将所有内容收集到一个名为“性别”的列表中。看来您的数据格式为性别[(男性,女性),mean_age,age_categories()]。因此,您有一个名为“性别”的列表,其中包含一个未命名列表,一个数字名称“ mean_age”和一个名为“ age_categories”的命名列表。
答案 1 :(得分:0)
@phi答案是正确的。为了更详细地解释它,摘要是 应该是列表列表。也就是说,其中每个元素是一个 列表。
让我们看一下提供的摘要的结构:
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)
)
)
str(summary_tbl1, max.level = 1)
#> List of 3
#> $ Gender :List of 2
#> $ Mean age (sd) :Class 'formula' language ~qwraps2::mean_sd(.data$inage)
#> .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
#> $ Age categories:List of 3
第一个和第三个元素是列表,但是第二个元素是公式。 摘要的正确规范是:
summary_tbl1 <-
list("Gender" =
list("Female" = ~ qwraps2::n_perc0(.data$gender == 0),
"Male" = ~ qwraps2::n_perc0(.data$gender == 1)
),
"inage" =
list("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)
)
)
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)于2019-11-14创建