Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.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
R Quantmod:计算昨天的缺口,在用户提示下选择股票_R_Quantmod - Fatal编程技术网

R Quantmod:计算昨天的缺口,在用户提示下选择股票

R Quantmod:计算昨天的缺口,在用户提示下选择股票,r,quantmod,R,Quantmod,我试图使用quantmod库和用户输入来计算股票的缺口 首先,我让用户输入股票,即NKE 然后我使用getSymbols创建一个数据帧NKE S1 <- readline("Enter a symbol please: ") S2 <- getSymbols(S1,from="2018-01-01", auto.assign=TRUE) 现在我想计算差距,但不知道如何自动选择昨天的NKE.Open值和2天前的NKE.Close NKE$"NKE.GAP"=NKE$NKE.Open-

我试图使用quantmod库和用户输入来计算股票的缺口

首先,我让用户输入股票,即NKE 然后我使用getSymbols创建一个数据帧NKE

S1 <- readline("Enter a symbol please: ")
S2 <- getSymbols(S1,from="2018-01-01", auto.assign=TRUE)
现在我想计算差距,但不知道如何自动选择昨天的NKE.Open值和2天前的NKE.Close

NKE$"NKE.GAP"=NKE$NKE.Open-NKE$NKE.Close
我的两个问题是:

-如何选择不同日期的单元格来计算间距

-如何自动化该过程,例如,如果我不使用NKE NIKE,而是使用readline用户输入来计算其他股票的差距,即Armour下的UAA

如有任何评论,将不胜感激


谢谢Vince。

让我们先定义输入参数:

library(quantmod)

S1 <- readline("Enter a symbol please: ")
gapLag <- 2 #  select cells of different dates
编辑:创建以股票代码命名的新数据框:

assign(S1, finData)

非常感谢你的帮助。最后一个问题:有没有办法让新的dataframe名称成为股票的名称而不是finData,比如将finData重命名为S1值以获得NKE而不是finData作为名称?这将防止覆盖finData数据帧的所有时间。你知道怎么得到这个吗?再次感谢。
finData <- getSymbols(S1,from="2018-01-01", auto.assign=FALSE)
finData$GAP1 <- finData[ ,1] - finData[ ,4] # positions of Open and Close columns don't change
finData$GAPuser <- finData[ ,1] - lag(finData[,4], gapLag)
assign(S1, finData)