【发布时间】:2018-08-11 00:12:15
【问题描述】:
我正在尝试使用 R 来理解这个问题的答案,但我遇到了很多困难。
可以使用此代码找到 R 代码的数据集
library(devtools)
install_github("genomicsclass/GSE5859Subset")
library(GSE5859Subset)
data(GSE5859Subset) ##this loads the three tables you need
问题来了
编写一个函数,该函数接受一个值向量 e 和一个编码两个组的二进制向量组,并从 t 检验返回 p 值:t.test( e[group==1], e[group= =0])$p.value.
现在将 g 定义为像这样 g 的代码案例 (1) 和控件 (0)
接下来使用函数apply对geneExpression的每一行进行t检验并获得p值。在所有这些 t 检验中,最小的 p 值是多少?
给出的答案是
myttest <- function(e,group){
x <- e[group==1]
y <- e[group==0]
return( t.test(x,y)$p.value )
}
g <- factor(sampleInfo$group)
pvals <- apply(geneExpression,1,myttest, group=g)
min( pvals )
这给了你 1.406803e-21 的答案。
运行时 myttest 函数的“e”参数的输入究竟是什么?是否可以将这个函数写成像
这样的公式t.test(DV ~ sampleInfo$group)
t 检验是比较 24 个人的基因表达值(我认为这些值在“geneExpression”矩阵中)与他们属于哪个组 您可以在其中找到 sampleInfo 的“组”列。我已经在 R 中运行了很多次测试,但由于某种原因,我无法完全理解这段代码中发生的事情。
【问题讨论】:
标签: r vectorization apply