R中的LIM包:更快地读取输入

R中的LIM包:更快地读取输入,r,R,对于求解R中的线性逆模型,有一个名为LIM()的优秀软件包。 模型问题在文本文件中以一种自然和可理解的方式表述。然后,LIM中的函数将此输入转换为所需的线性等式和不等式条件,这些条件可以通过最小二乘法或线性规划技术求解 我有一个文本文件,大约有6000行(等式、不等式、组件、参数的简单列表),描述线性逆模型。 我通过以下两行将其提供给R进行处理 liminput <- Read(File) lim <- Setup(liminput) liminput我不认为会有一个非常简单的答案

对于求解R中的线性逆模型,有一个名为LIM()的优秀软件包。 模型问题在文本文件中以一种自然和可理解的方式表述。然后,LIM中的函数将此输入转换为所需的线性等式和不等式条件,这些条件可以通过最小二乘法或线性规划技术求解

我有一个文本
文件
,大约有6000行(等式、不等式、组件、参数的简单列表),描述线性逆模型。 我通过以下两行将其提供给R进行处理

liminput <- Read(File)
lim <- Setup(liminput)

liminput我不认为会有一个非常简单的答案;您可能需要找到某种方法来重新编写
Read()
函数,以提高速度(但请参见下面的一种可能性)。详细查看
Read()
函数(如果您不知道,您可以通过键入
Read
打印源代码),它本质上是逐行读取并在R代码中解析它们。这些操作中的大多数可能很难矢量化,在
Rcpp
/C++

诺姆·罗斯(Noam Ross)写了一篇文章(第一个建议是“买一台更好的电脑”)。实际上,只有一个“低挂果实”的建议可以在不亲自深入代码的情况下发挥作用,那就是使用R的字节编译器:

library(compiler)
Read.comp <- cmpfun(Read)
Read.comp(File)  ## **maybe** faster than Read(File) ...
库(编译器)

这将很难回答,原因有二。(1) 它使用的是一个特定的附加包,可能没有被广泛使用(因此潜在的受访者在回答之前必须深入挖掘并弄清楚包的细节)。(2) 你没有给我一个。。。你能提供更多的细节吗?您在上面指定的两行之间的运行时间是如何分配的(慢速阅读/快速设置,反之亦然,或者两者大致相等)?谢谢,刚刚尝试使用编译器的
cmpfun()
。不幸的是,当我使用
system.time()
对有字节编译与无字节编译的版本进行基准测试时,没有任何改变。现在,我将查看
Read()
的代码,以检查任何可能的速度。