【发布时间】:2018-04-17 00:35:59
【问题描述】:
我在 R 中有一个数据框名称 R_alltemp,有 6 列,2 组数据,每组 3 个复制。我正在尝试对前三个值和后三个值之间的每一行执行 t 检验,并使用 apply() 以便它可以用一行遍历所有行。这是我目前使用的代码。
R_alltemp$p.value<-apply(R_all3,1, function (x) t.test(x(R_alltemp[,1:3]), x(R_alltemp[,4:6]))$p.value)
这是表格的快照
R1.HCC827 R2.HCC827 R3.HCC827 R1.nci.h1975 R2.nci.h1975 R3.nci.h1975 p.value
1 13.587632 22.225083 15.074230 58.187465 79 82.287573 0.4391160
2 2.717526 1.778007 1.773439 1.763257 2 1.679338 0.4186339
3 203.814478 191.135711 232.320487 253.908939 263 263.656100 0.4904493
4 44.386264 45.339169 54.089884 3.526513 3 5.877684 0.3095634
它起作用了,但是我仅仅通过目测得到的 p 值似乎是错误的。例如在第一行,第一组的平均值远低于第二组,但我的 p 值只有 0.4。
我觉得我在这里遗漏了一些非常明显的东西,但我一直在努力解决它的时间比我想要的要长得多。任何帮助将不胜感激。
【问题讨论】:
-
寻求帮助时,您应该包含一个simple reproducible 示例,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。您是否尝试使用 dplyr::filter 或 stats::filter 或 base::Filter?你加载了什么?
-
这是一项研究设计,需要与 t 检验不同的东西。您需要统计建议。 (有了明智的计划后,您应该学习基本的 R 编码并通过基本示例了解括号是用于函数调用,而不是用于索引。)
标签: r statistics apply