为什么我的运行 ggttest 出现错误?

Why when I run the ggttest there is an error?

当我 运行 对一个数字变量和一个二分变量进行 t 检验时,没有问题,我可以看到结果。问题是当我 运行 相同 t 检验的 ggttest 时。出现错误,提示未找到我的变量之一。我不知道为什么会这样。我使用的 aml 数据集来自 package boot。下面你可以看到代码:

https://i.stack.imgur.com/7kuaA.png

library(gginference)
time_group.test16537 = t.test(formula = time~group,
                              data = aml,
                              alternative = "two.sided",
                              paired = FALSE,
                              var.equal = FALSE,
                              conf.level = 0.95)
    time_group.test16537


    ggttest(time_group.test16537,
            colaccept="lightsteelblue1", 
            colreject="gray84", 
            colstat="navyblue")

ggttest 中的这些代码行出现问题:

datnames <- strsplit(t$data.name, splitter)
len1 <- length(eval(parse(text = datnames[[1]][1])))
len2 <- length(eval(parse(text = datnames[[1]][2])))

它试图找到组和时间的长度,但它没有看到它来自 data.frame。非常糟糕的错误...

对于你的情况,假设你在每组中少于 30 并且它绘制了一个 t 分布,所以:

library(gginference)
library(boot)
gginference:::normt(t.test(time~group,data=aml),
colaccept = "lightsteelblue1",colreject = "grey84", 
colstat = "navyblue")

t.test 不会将您的数据存储在输出中,因此您无法从 t.test 的输出列表中提取数据。

使用公式的唯一方法是:

library(gginference)
t_test <- t.test(questionnaire$pulse ~ questionnaire$gender)
ggttest(t_test)

原始答案在这里: