给出一个缺少值的数据集,我想为配对比较生成平均值、标准差等.因此,与给定ID不匹配的任何数据行都不应包括在统计数据中.下面是我想要做的一个最小的例子:
library(gtsummary)
D <- tibble(Set = c(rep('A',4), rep('B', 4)),
ID = c(1, 2, 3, 4, 1, 2, 3, 4),
V1 = c(NA, 1, 2, 3, 1, 3, 2, 4),
V2 = c(4, NA, NA, 5, 6, 7, 8, 9))
D |>
tbl_summary(
by = Set,
type = list(everything() ~ 'continuous'),
statistic = all_continuous() ~ "{mean} <{N_nonmiss}>",
include = -ID,
missing = 'no') |>
add_n() |>
add_p(test = everything() ~ 'paired.t.test',
group = ID)
这会产生正确的p值,但对于V1,我希望A的平均值为Mean(1,2,3)[It is],而B的平均值为Mean(3,2,4)[相反,它是Mean(1,3,2,4)],因为只应使用ID 2,3,4,因为ID=1没有真正的配对集.对于A和B,N都应该是3.同样,对于V2,我希望A的平均值是Mean(4,5)[它是],而B是Mean(6,9),因为只有ID1和4有成对的值[相反,它是Mean(6,7,8,9)].A和B的N都应为2.
如果这不能在表函数内完成,那么很可能有一种方法将缺失对的实际值也更改为基于ID列的安娜值.这将使数据在表函数中正确工作,但我也没有设法解决这种方法.