如何使用apply family函数对数据帧的行(包含两个级别,或者换句话说,一组样本)执行t.test?我已经使用函数和循环完成了。我的总体目的是从两组miRNA微阵列样品中计算DE基因。而且我知道limma可以做到这一点,但似乎limma不支持配对t检验。
t.test.df=function(df,paired){
df.t=c()
for(i in 1:nrow(df)){
df.t=rbind(df.t,unlist(t.test(df[i,grp1],df[i,grp2],paired=paired)))
}
rownames(df.t)=rownames(df)
df.t
}
贝斯茨! Allen Chiu
答案 0 :(得分:5)
由于您未在此处提供数据示例,因此data.frame中的一些示例数据称为计数。在这个例子中有3个案例和3个控件
Gene S1 S2 S3 S4 S5 S6
1 20000 12032 23948 2794 5870 782
3 15051 17543 18590 21005 22996 26448
4 35023 43092 41858 39637 40933 38865
t.result <- apply(counts[,2:7], 1, function (x) t.test(x[1:3],x[4:6],paired=TRUE))
counts$p_value <- unlist(lapply(t.result, function(x) x$p.value))
您还需要进行某种多重测试校正。
counts$fdr <- p.adjust(counts$p_value, method = "fdr")
使用?p.adjust
查看其他方法