我使用edgeR包进行成对比较,但是当我尝试存储exactTest函数的结果时,我遇到了问题,因为我循环遍历所有数据集。有28个比较要执行,最后我想要一个包含由exactTest生成的28个DGEExact对象的列表。
我运行了以下循环:
extest = list()
k = 1
for(i in 1:nlevels(data$samples$group)) {
for(j in (i+1):nlevels(data$samples$group)) {
if (i < nlevels(data$samples$group)) {
extest[k] = exactTest(data, pair=c(i,j))
k = k+1
}
}
}
我收到了针对exactTest()的所有28次执行的以下警告:
28: In extest[k] = exactTest(data, pair = c(i, j)) :
number of items to replace is not a multiple of replacement length
DGEExact对象的结构丢失了:
> class(extest[1])
[1] "list"
> extest[1]$comparison
NULL
head(extest [1])功能不起作用,整个表格都会打印到屏幕上。
我需要找到一种方法来存储创建时的DGEExact对象,但是将它们的结构和类保留为DGEExact。
我已经将这个问题发布到了seqanswers.com,尽管有一个人付出了相当大的努力来解决问题,但问题仍未得到解决。
之后我需要遍历DGEExact对象,我完全同意这里表达的观点:How to name variables on the fly? 任何建议都会非常感激,因为我确信这是处理R数据类型的一个基本问题,可以帮助许多用户。