使用qwraps2包summary_table函数时遇‘x必须为公式’错误
解决summary_table函数的"x must be a formula"错误
我一眼就揪出问题所在啦!你在定义Comorbidities子列表的时候,不小心把赋值符号=写成了比较运算符==,这直接导致qwraps2包没法正确识别公式结构,才抛出了Error: x must be a formula的错误。
修正后的代码
# 修正赋值符号的错误 summary_test <- list( "Gender" = list( "Female" = ~ qwraps2::n_perc0(.mydata$sex == "F"), "Male" = ~ qwraps2::n_perc0(.mydata$sex == "M") ), "Age" = list( "Mean" = ~ qwraps2::mean_sd(.mydata$age, denote_sd = "paren") ), "Comorbidities" = list( "HIV Positive" = ~ qwraps2::n_perc0(.mydata$hiv == 1), # 将==改为= "Type 2 Diabetes" = ~ qwraps2::n_perc0(.mydata$diabetes == 1) # 同样修正==为= ) ) # 调用函数 whole <- summary_table(mydata, summary_test)
额外注意要点
- 列表中定义键值对必须用
=,==是做逻辑比较的运算符,不能用来绑定列表名称和对应公式 - 确保每个统计项都是标准的公式格式(以
~开头),这是qwraps2包识别统计规则的核心要求 - 你代码里
.mydata的使用是正确的,summary_table会自动把传入的mydata赋值给内部变量.mydata,无需额外定义
内容的提问来源于stack exchange,提问作者epi_stats
相关产品推荐
相关产品推荐

