【发布时间】:2013-08-15 13:50:44
【问题描述】:
我有n 的列表数量,比如说list1、list2、...、listn。每个列表有 10 个元素,我需要计算每个列表的十个元素的“dim”的“平均值”。所以输出应该是一个长度为n的向量。
例如输出向量的第一个元素应该是:
n1 = mean(dim(list1[[1]]), dim(list1[[2]]), dim(list1[[3]]), ..., dim(list1[[10]])
我知道如何使用for-loops 获得它,但我确信这不是最好的解决方案。
列表的结构源自名为“edgeR”的“Bioconductor”R 包之一。 所以列表的每个元素都有这样的结构:
$ :Formal class 'TopTags' [package "edgeR"] with 1 slots
.. ..@ .Data:List of 4
.. .. ..$ :'data.frame': 2608 obs. of 4 variables:
.. .. .. ..$ logFC : num [1:2608] 6.37 -6.48 -5.72 -5.6 -4.01 ...
.. .. .. ..$ logCPM: num [1:2608] 5.1 2.55 2.08 1.57 3.08 ...
.. .. .. ..$ PValue: num [1:2608] 3.16e-292 1.57e-187 2.15e-152 5.58e-141 1.27e-135 ...
.. .. .. ..$ FDR : num [1:2608] 7.37e-288 1.83e-183 1.67e-148 3.25e-137 5.92e-132 ...
.. .. ..$ : chr "BH"
.. .. ..$ : chr [1:2] "healthy" "cancerous"
.. .. ..$ : chr "exact"
而且由于每个列表有 10 个元素,所以我在运行时有 10 次上述结构的重复:
str(list1)
【问题讨论】:
-
可以分享
list1(str(list1))的结构 -
你认为如何使用
for循环来迭代变量list1..list10? -
@SimonO101 我添加了上面的编辑
-
@SimonO101 非常感谢。再问一个问题,我就不会再问任何关于 sapply 的问题了。如果我想从“list*”中计算相应元素的暗度平均值怎么样?像这样: n1 = mean(dim(list1[[1]], list2[[1]], list3[[1]], ...,listn[[1]])) 然后 n10 = mean(dim( list1[[10]], list2[[10]], ..., listn[[10]]))
-
@hora 我不确定我是否理解。你能在你的数据结构中包含一个
dput吗