如何在“vtable::sumtable”中使用 t.test 比较组?

How to compare groups using a t.test in `vtable::sumtable`?

提问人:John-Henry 提问时间:8/25/2023 更新时间:10/13/2023 访问量:84

问:

我有一个简单的问题。我想使用参数在两组之间进行 t.test 而不是 f.test。我从帮助文档中看到这应该与函数有关,但我不太确定该怎么做。group.testindependence.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 with reprex v2.0.2

r vtable 假设检验

评论


答:

1赞 NickCHK 9/27/2023 #1

对于回复缓慢,我们深表歉意;自从我搜索 vtable 以来已经有一段时间了。

根据文档,正如您所注意到的,执行自定义需要您编写一个适合传递给 的函数。这意味着它返回一个列表,其中包含 (1) 检验统计量的名称、(2) 统计量和 (3) p 值。因此,要进行 t 检验,您必须编写一个函数来执行此操作,然后将其作为选项传递给 (或者类似地,如果您想为group.testindependence.testgroup.testnumeric.testfactor.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))

编辑:在现在在 CRAN 上的 vtable 版本 1.4.5 中,它包含在包中,您可以使用group.test = list('numeric.test' = vtable:::groupt.it)