在 R 中,我尝试使用 tableone::CreateTableOne 来计算数据帧上的 smd(标准化平均差)。我使用了本教程(https://cran.r-project.org/web/packages/tableone/vignettes/smd.html) - 代码运行并很好地生成了所需的输出表,包括 smd。
但是,如果我使用自己的数据,例如下面的测试数据,我会得到表格但没有 smd。可能我犯了一些愚蠢的错误,但是在尝试了很多事情之后(只有数字,更小或更大的数据集,分类变量作为因子(如 r 帮助)或字符(如教程)......)我不知道为什么我不要得到 smd。
# package tableone for CreateTableOne
if (!require("tableone")) install.packages("tableone"); library("tableone")
# producible test data
set.seed(1234)
d <- data.frame(age = rnorm(n = 200, mean = 50, 9),
hair = as.factor(sample(x = c("brown", "black", "blond"), 200, replace = T)),
group = sample(x = c("sick", "healthy"), 200, replace = T))
str(d)
# calculate and print the table
tabUnmatched <- tableone::CreateTableOne(vars = c("age", "hair"), strata = "group", data = d, test = FALSE, smd = TRUE)
print(tabUnmatched)
结果如下表,没有 smd(并且没有错误消息):
Stratified by group
healthy sick
n 90 110
age (mean (SD)) 49.18 (7.97) 49.72 (10.10)
hair (%)
black 30 (33.3) 35 (31.8)
blond 33 (36.7) 43 (39.1)
brown 27 (30.0) 32 (29.1)
我做错了什么,我需要做什么才能获得 smd 输出?