我正在尝试学习如何在R中使用微阵列数据分析。
我无法为我的基因生成p值,看看哪些是基因表达的。我有22283行和38列,其中行是探针集,列是样本,有18个控件和19个。
如何针对所有其他样本(列)生成每个样本(列)的p值。到目前为止,我只是设法做了案例与控件。
dataset.contols = nz.samples[1,c(1:18)]
dataset.cases = nz.samples[1,c(19:38)]
t.test.probe.1=t.test(dataset.contols,dataset.cases,"two.sided")
#printed p-value for first row
t.test.probe.1$p.value
#gets p-values for all rows,(checked first row p-value with the one
#printed above to ensure consistency)
pvalue.all.probes = apply(nz.samples,1,
function(x){t.test(x[1:18],x[19:38]) $p.value})
非常感谢您的帮助!
答案 0 :(得分:1)
set.seed(42)
DF <- data.frame(matrix(rnorm(99), 33))
ps <- data.frame(t(
combn(ncol(DF), 2,
function(ind) c(ind[1],
ind[2],
t.test(DF[, ind[1]],DF[, ind[2]],"two.sided")$p.value))))
names(ps) <- c("col1", "col2", "p")
ps$padj <- p.adjust(ps$p, "fdr")
# col1 col2 p padj
#1 1 2 0.4037704 0.7488152
#2 1 3 0.7775216 0.7775216
#3 2 3 0.4992101 0.7488152