R语言 如何在`vtable::summable`中使用t.test比较组?

pgccezyw  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(65)

我有个简单的问题我想使用group.test参数在两组之间进行t.检验,而不是f.检验。我从帮助文档中看到,这应该与independence.test函数有关,但我不太确定该怎么做。

vtable::sumtable(data = mtcars, 
               vars = "mpg",
               group = "am", 
               out = "return",
               group.test = T)
#>   Variable  N Mean  SD  N Mean  SD       Test
#> 1       am  0           1                    
#> 2      mpg 19   17 3.8 13   24 6.2 F=16.86***

创建于2023-08-24使用reprex v2.0.2

7gcisfzg

7gcisfzg1#

抱歉回复得太慢;我搜索vtable有一段时间了。
正如您所注意到的,根据文档,进行自定义group.test需要编写适合传递给independence.test的函数。这意味着它返回一个列表,其中包含(1)检验统计量的名称,(2)统计量和(3)p值。因此,要进行t检验,您必须编写一个函数来执行此操作,然后将其作为numeric.test的一个选项传递给group.test(如果您想为factor.test编写一个函数,则采用类似的方法)。

library(vtable)

data(mtcars)

custom_t = function(x, y, w = NULL) {
  t_test_result = t.test(y~x)
  stat = unname(t_test_result$statistic)
  pval = t_test_result$p.value
  return(list('t',stat,pval))
}

sumtable(mtcars, 
         vars = 'mpg',
         group = 'am',
         group.test = list('numeric.test' = custom_t))

相关问题