我对R编程非常陌生,现在开发了一个应该与R. 交互的系统,我的问题是:
如何从脚本中获得硬编码的引号,而不是从诸如“yahoo”、“google”等各种来源获得引号?
为什么我需要脚本中硬编码的引号?
我使用Rserve作为我的下游系统,主系统负责获取数据,并将执行其他投资组合检查,然后调用R-TTR-quantmod包来计算财务编号。因此,我不希望R重新获取这些引号,所以我希望这些引号被硬编码,并从我的系统发送到Rserve,在那里执行并返回结果。这样,我的代码将依赖于R的标准计算,用户可以集中精力于其他业务逻辑。
为什么我不使用csv文件方法?
我在一个实时系统和文件io将花费大量的时间,并会减慢我的系统。
例如:
library(quantmod)
library(TTR)从雅虎提取S&P 500指数数据!金融
getSymbols("^RIL", from="2000-01-01", to="2008-12-07")计算RSI指示器
rsi <- RSI(Cl(RIL),2)所以这就是我需要的:
getSymbol,而是将数据作为脚本中的一个变量传递。发布于 2012-08-08 00:16:26
我刚刚编写了一些代码来使用load/save来缓存xts对象。代码是微不足道的:
getSymbols("^RIL", from="2000-01-01", to="2008-12-07")
save(RIL,file="cache/RIL.rdata")然后,在进行分析的另一个脚本中:
load("cache/RIL.rdata")
rsi <- RSI(Cl(RIL),2)作为额外的奖励,.rdata文件被压缩。
一些统计数据:证物1
我以前的方法有1分钟的条形图,每天作为一个csv文件。303个文件,加到12 to,加载到一个86,590行XTS对象中,占用5.64秒(经过,用户时间为5.34s)。
.rdata文件为2.8MB,占用0.056s。
证物2:
第一种方法:在数据上新运行RSI (作为另一个计算的前游标)。第二种方法:让另一个离线进程对数据运行RSI,并将其缓存到一个.rdata文件中。
加载RSI文件比刚计算RSI数据快3倍。
警告:在我的计时测试中,我使用了一个循环,在pass 1上创建/保存它,然后在2到20次传递时加载它。所以它在任何操作系统文件缓存中都是新鲜的。
https://stackoverflow.com/questions/11841739
复制相似问题