【发布时间】:2017-12-09 16:24:21
【问题描述】:
我正在处理两个不同的大型数据集并尝试利用mapply() 来使迭代函数正常工作。
目标是从 Data_1 中逐列获取每个数据点,并将其与 Data_2 列中的两个数据点进行比较。因此,Data_1[1,1] 将仅与 Data_2[1,1] 和 Data_2[2,1] 进行比较。更清楚地说,Data_1 中的 data1 列只会与 Data_2 中的 dataA 元素进行比较,因此没有交叉列比较。
数据_1:NxM
data1 data2 data3 data4
-0.710003 -0.714271 -0.709946 -0.713645
-0.710458 -0.715011 -0.710117 -0.714157
-0.71071 -0.714048 -0.710235 -0.713515
-0.710255 -0.713991 -0.709722 -0.713972
Data_2:PxQ
dataA dataB dataC dataD
-0.71097 -0.714059 -0.70928 -0.714059
-0.710343 -0.714576 -0.709338 -0.713644
我之前写了一个for()while()基于循环的算法,但是运行时间与原始数据一样多。然后,我转向基于apply() 的逻辑,但在我调用的函数中仍然有循环,所以这并没有加快代码速度。基于my earlier question,我正在寻找更好的方法来使用mapply()。
我无法想象的部分是列到行的比较以及mapply() 将如何递归地浏览它。如何使用mapply() 或lapply() 有效地完成这项工作?
任何建议都会有所帮助,谢谢。
【问题讨论】:
标签: r performance optimization packages