【问题标题】:Why when I run the ggttest there is an error?为什么当我运行 ggttest 时出现错误?
【发布时间】:2020-07-16 22:41:17
【问题描述】:

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

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")

【问题讨论】:

  • 嗨@Katerina,这是个好问题。我可以看到你从包启动中使用 aml。不幸的是,人们无法用图像重现您的错误。您介意将这两行代码作为您的问题的一部分,以及使用的库吗?
  • @StupidWolf 非常感谢您的评论。我是这个论坛的新手,所以我不太清楚如何正确写下问题。
  • 酷@Katerina,是的,请参阅下面的答案。这是包中的一些奇怪的错误。下面的修复应该给你情节
  • @StupidWolf 一切都很顺利。谢谢。

标签: r t-test


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 或使用t.test(aml$time ~ aml$group) 致电t.test
  • 是的@Axeman,这是在小插图中完成的......只是不太相信 ggttest 是正确编写的......
  • 带有错误报告here
  • 没问题,你做了最难的部分。
【解决方案2】:

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

使用公式的唯一方法是:

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

这里的原始答案:How to extract the dataset from an "htest" object when using formula in r

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 2022-01-23
    相关资源
    最近更新 更多