我有人口统计数据和一些我想显示的变量的平均值(95% CI)到目前为止:
> label (demog$Site) = "Site"
> label (demog$Sex) = "Sex"
> label (demog$Age) = "Age (years)"
> label (demog$Temperature) = "Temperature (Celcius)"
> label (demog$MOI) = "MOI"
>
> table1(~Sex + Age + Temperature + MOI | Site, data = demog)
这给了我所有按采样站点分层的变量,这就是我想要的。但它报告了我不想要的每个连续变量(除“Sex”之外的所有变量)的平均值 (SD)、中值 [Min, Max] 和缺失值。
为了改变显示的内容,我试着模仿这个: https ://benjaminrich.github.io/table1/vignettes/table1-examples.html
我做了:
> my.render.cont = function(x) {with(stats.apply.rounding(stats.default(x), digits=2), c("", "Mean (95% CI)"=sprintf("%s (± %s)", MEAN, (MEAN + SD*1.96), (MEAN - SD*1.96))))}
> my.render.cat = function(x) {c("", sapply(stats.default(x), function(y) with(y, sprintf("%d (%0.0f %%)", FREQ, PCT))))}
> strata = c(list(Total=demog), split(demog, demog$Site))
但是当我试图真正展示桌子时
> table1(strata, labels, render.continuous=my.render.cont, render.categorical=my.render.cat)
Error: object of type 'closure' is not subsettable
我不一定关心以这种特定方式显示 95% CI,我只是想显示它们。如果有人可以解决此错误,那就太好了。如果有人有一个完全不同的方式来显示这个表中的平均值(95% CI),也很好