【问题标题】:R - Running a t-test from piping operatorsR - 运行管道操作员的 t 检验
【发布时间】:2018-10-06 18:21:44
【问题描述】:

是否可以从piping 运算符运行t.test
我试图找到这个问题的答案,但围绕这个主题的大多数问题都着眼于在同一个数据集上进行许多测试。
我看过broom 包,但它似乎对阅读结果很有帮助。
我感兴趣的是是否可以只使用piping 并在输出上运行t.test()
例如,这里有一些示例数据

library(dplyr)
d <- data.frame(
  group = sample(LETTERS[1:2], size = 10, replace = T),
  amount = sample(1:3, size = 10, replace = T)
  )

如果我使用base R 运行t.test,我会得到结果:

t.test(d$amount~d$group, var.equal = T)
> d
   group amount
1      A      2
2      A      2
3      B      1
4      B      3
5      A      2
6      B      1
7      B      2
8      A      1
9      B      3
10     A      3

但如果我尝试使用 piping,我会收到错误:

d %>% t.test(amount~group, var.equal = T)

Error: is.atomic(x) is not TRUE
In addition: Warning messages:
1: In is.na(y) :
  is.na() applied to non-(list or vector) of type 'language'
2: In mean.default(x) : argument is not numeric or logical: returning NA
3: In var(x) : NAs introduced by coercion
4: In mean.default(y) : argument is not numeric or logical: returning NA

我需要做一些额外的操作吗?

【问题讨论】:

    标签: r dplyr piping


    【解决方案1】:

    我们可以将它放在summarise 中作为list

    d %>%
      summarise(ttest = list(t.test(amount ~ group, var.equal = TRUE))) 
    

    如果我们只需要提取 pvalue,可以这样做

    d %>% 
      summarise(pval = t.test(amount ~ group, var.equal = TRUE)$p.value)
    

    或者我们可以将它放在{} 中,然后执行t.test

    d %>%
         {t.test(.$amount ~ .$group, var.equal = TRUE)}
    

    或者通过为公式方法指定data而不使用大括号

    d %>%
         t.test(amount ~ group, data = ., var.equal = TRUE)
    

    编辑:基于@hpesoj626 的 cmets

    【讨论】:

    • @hpesoj626 你是对的。我正在检查.$amount ~ .
    • 太好了,我错过了data = . 参数。
    【解决方案2】:

    “rstatix”包完全处理在管道中执行基本统计测试

    https://cran.r-project.org/web/packages/rstatix/rstatix.pdf

    rstatix 提供了 t.test() 或 cohensD() 等函数的包装器,从而可以将它们与管道运算符一起使用。根据需要执行 t-test 只需使用它们的 t.test()、t_test() 包装器即可:

    d %>% t_test(amount ~ group, var.equal = T)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      相关资源
      最近更新 更多