在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输出?
发布于 2020-09-28 00:32:30
errr...this?
print(tabUnmatched, smd = TRUE)
Stratified by group
healthy sick SMD
n 90 110
age (mean (SD)) 49.18 (7.97) 49.72 (10.10) 0.059
hair (%) 0.050
black 30 (33.3) 35 (31.8)
blond 33 (36.7) 43 (39.1)
brown 27 (30.0) 32 (29.1) https://stackoverflow.com/questions/64088066
复制相似问题