使用来自R中的t-test的输出表创建函数

问题描述 投票:0回答:1

我想从t测试中编写一个整洁输出表的函数,因为我正在进行大量的事后t检验,但是编写函数不是我的强项,所以我想要一些帮助。我目前的代码看起来像这样


library(tidyverse)
library(lsr)
library(broom)

t_table <- function(data$col, data$col) {

  t.test(data$col, data$col) %>%
    broom::tidy() %>%
    mutate(Cohens_d = cohensD(data$col, data$col)) %>% # calc. cohen's d
    mutate_at(vars(- c(p.value,method,alternative)), round, 2)
}

其中一个错误是:

数据错误$ col:'closure'类型的对象不是子集表。

我假设数据和col不是任何数据框和列的通用名称。

基本上我希望能够为每个变量指定任何数据框和列。我甚至不确定这是否可行,因为它是我正在尝试创建的一个非常通用的功能,但任何帮助都将非常感激。

r function statistics tidyverse t-test
1个回答
1
投票

你的函数的输入参数应该a)不具有相同的名称,b)不应该包含$。除此之外你的功能正常:

t_table <- function(col1, col2) {

  t.test(col1, col2) %>%
    broom::tidy() %>%
    mutate(Cohens_d = cohensD(col1, col2)) %>% # calc. cohen's d
    mutate_at(vars(- c(p.value,method,alternative)), round, 2)
}

set.seed(1)
t_table(rnorm(100), rnorm(100)+1/2)
  estimate estimate1 estimate2 statistic     p.value parameter conf.low conf.high                  method alternative Cohens_d
1    -0.35      0.11      0.46     -2.69 0.007745151    197.19    -0.61     -0.09 Welch Two Sample t-test   two.sided     0.38
© www.soinside.com 2019 - 2024. All rights reserved.