我必须先道歉,因为我没有编程背景,所以请原谅我,如果这个问题过于简单化或反复解决了。如果从我的解释中不清楚,我会非常愿意帮助澄清我的问题。
我有两组数据矩阵。 “A”:
[Ac1] [Ac2] ... [Ac500]
[Ac1] 25 30 ... 15
[Ar2] 7 54 ... 41
...
[cr25000]
和
“B”,其列数相似,但不是行数
[Bc1] [Bc2] ... [Bc500]
[Br1] 25 30 ... 15
[Br2] 7 54 ... 41
...
[Br20000]
我在R中运行一个模块(“npSeq”),它一致地使用矩阵A作为输入值,水平向量包括矩阵B中行的所有值,ex [1]。该模块返回单独的值列表。我需要为矩阵B中的所有行独立运行分析,保存所有返回的列表,然后我需要将它们组合起来。
但是我想知道是否有一种方法可以自动化该过程,以便模块使用从行[Br1]派生的向量运行,保存返回的列表,然后使用从行派生的向量再次运行该过程[的Br 2]。重复该过程直到[Br20000]。
再次,我很抱歉这个措辞太差了。我希望我能够理解足够的术语来更清楚地陈述我的问题。
答案 0 :(得分:1)
您可以使用lapply
循环遍历B
的行索引:
result.list <- lapply(1:nrow(B), function(i) npSeq(A, B[i, ]))
请注意,这比使用for
循环要快得多(任何?)。它只是一个简短而干净的等价物。 20,000次迭代确实听起来很多,所以可能需要一段时间,具体取决于函数的速度有多慢。