Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用get()引用quantmod数组中带有R的列?_R_Get_Finance_Quantmod_Trading - Fatal编程技术网

使用get()引用quantmod数组中带有R的列?

使用get()引用quantmod数组中带有R的列?,r,get,finance,quantmod,trading,R,Get,Finance,Quantmod,Trading,我是R新手,在项目中使用quantmod()包。以下代码块起作用: require(quantmod) stocks<-c("MMM", "MSFT", "BP") for(i in 1:length(stocks)){ getSymbols(stocks[i], from= "2013-07-01") s<-get(stocks[i]) dr<-dailyReturn(s) print(paste(dr)) } 这是有效的: BP$BP.Open 但是,这不起作用: s

我是R新手,在项目中使用
quantmod()
包。以下代码块起作用:

require(quantmod) 
stocks<-c("MMM", "MSFT", "BP")
for(i in 1:length(stocks)){
getSymbols(stocks[i], from= "2013-07-01")
s<-get(stocks[i])
dr<-dailyReturn(s)
print(paste(dr))
}
这是有效的:

BP$BP.Open
但是,这不起作用:

s$s.Open #NULL

为了提供足够的上下文,我的目标是遍历股票向量,检查]条件,然后计算当天的一些技术分析和时间序列数据,并将其复制到ARFF文件中,用作机器学习环境(Weka)的培训示例。谢谢。

一般来说,使用提取器函数
Op
等更容易。请参见
?OHLC.Transformations
。此外,如果只有一个符号,则可以在调用
getSymbols
时使用
auto.assign=FALSE
,以避免同时调用
get

s <- getSymbols("BP", auto.assign=FALSE)
您也可以通过这种方式将TTR函数应用于每个符号

rsi <- eapply(e, function(x) RSI(Op(x), n=14))

s$s.Open
不起作用,因为列名基于存储在对象中的数据的股票代码,而不是基于对象名称本身。如果您仔细想想,就无法让
getSymbols
知道您将其输出分配给的对象的名称。Joshua,这(全部)在
getSymbols
帮助页面中是完美的。当前的示例都有点人为,只是展示了使用参数的各种方法。他们中没有一个使用
eapply
,你在这里展示的方式似乎与
getSymbols
类似于葡萄酒和奶酪:-)@DarrenCook:如果有个好撒玛利亚人能提供补丁文件就好了……;)
s <- getSymbols("BP", auto.assign=FALSE)
e <- new.env()
getSymbols(stocks, env=e)
dr <- eapply(e, dailyReturn)
rsi <- eapply(e, function(x) RSI(Op(x), n=14))
rsi_all <- do.call(cbind, rsi)