【问题标题】:Running multiple t tests through looping columns in R通过 R 中的循环列运行多个 t 检验
【发布时间】:2015-12-25 23:54:01
【问题描述】:

在本练习中,我将查看数据集iris。我想要做的是在第一列和第 2、3 和 4 列之间运行 t 检验。所以最后我们有 4 个结果,t.test(c1, c2)、t.test (c1, c3)、t.test(c1, c4)、t.test(c1, c5)。这是我到目前为止所拥有的。我得到了一些价值,但我不确定它是否正确。

result <- vector("list", 4)
for (i in 1:4) {
    x = iris[ , 1]
    y = iris[ , i + 1]
    result[i] = t.test(x, y)$p.value
}

【问题讨论】:

  • 您认为正确的输出应该是什么?您需要在开始编写代码之前确定这一点,否则您的头会撞到很多很多墙上。
  • 我想要p值。我不确定这些是否正确。是吗?
  • 如何独立测试您的结果。 t.test(iris[,1],iris[,2])$p.value [1] 1.459543e-96
  • 以编程方式,我在您的代码中看不到任何错误。如果您询问统计数据,您可能应该调整多个测试的 p 值。

标签: r for-loop statistics


【解决方案1】:
library(dplyr)
library(tidyr)

iris %>%
  select(-Species) %>%
  gather(variable, value, -Sepal.Length) %>%
  group_by(variable) %>%
  summarize(p = t.test(Sepal.Length, value)$p.value)

【讨论】:

  • 这是很好的代码,但没有解决 OP 问题,即询问如何验证或对结果有信心,而不是如何改进代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 2022-11-11
  • 2021-04-03
  • 2019-07-22
  • 2015-04-16
相关资源
最近更新 更多