Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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 如何找到特定日期的股价?_R_Quantmod_Tidy_Quandl - Fatal编程技术网

R 如何找到特定日期的股价?

R 如何找到特定日期的股价?,r,quantmod,tidy,quandl,R,Quantmod,Tidy,Quandl,使用quantmod或tidy quant,可以从一系列时段下载股票价格。然而,我希望在现有的数据框架中添加一个股票价格列,其中包含股票代码和日期。在谷歌电子表格中,有一个简单的公式来计算特定日期的股价 =谷歌金融(“AMZN”,“价格”,日期(2017,2,7)) 然而,在R中,似乎没有办法做到这一点 我有一个数据框: Date. Ticker. Revenue. Profit... x. y z i ...

使用quantmod或tidy quant,可以从一系列时段下载股票价格。然而,我希望在现有的数据框架中添加一个股票价格列,其中包含股票代码和日期。在谷歌电子表格中,有一个简单的公式来计算特定日期的股价

=谷歌金融(“AMZN”,“价格”,日期(2017,2,7))

然而,在R中,似乎没有办法做到这一点

我有一个数据框:

Date.    Ticker.  Revenue.  Profit...

x.          y        z        i      
...         ...      ...      ...
我需要添加一个额外的列,其股票价格为y,与x相同,以获得

Date.    Ticker.  Revenue.  Profit...   Price

x.          y        z        I          p (of y on x)
...         ...      ...      ...        ...

有没有办法做到这一点?

你可以将tiingo与quantmod(或tidyquant)一起使用。我希望yahoo也能工作,但使用yahoo时,我在使用1天的检索时总是会遇到错误(yahoo方面的劣质工作)

库(quantmod)

my_api您可以将tiingo与quantmod(或tidyquant)一起使用。我希望雅虎也能工作,但在使用雅虎的时候,我在使用1天的检索(雅虎方面的劣质工作)时总是会出错

库(quantmod)

我的api谢谢您,但问题是如何将该价格添加到现有df中,如中所示question@azmath,请参阅答案中的其他信息。下次请再创建一个可复制的示例。你好@phiver,谢谢!然而,我无法复制。它显示一个错误:错误:
mutate()`input
close
有问题。x无法导入“AMZN”。HTTP错误401。ℹ 输入
close
map2(股票代码、日期、获取价格)
。运行
rlang::last_error()
查看错误发生的位置。`@azmath,你能提供你的data.frame的一个小的
dput
吗?看起来您的日期可能不是预期格式。您确实有tiingo的api,不是吗?您可以从他们那里免费获得一个。谢谢,但问题是如何将该价格添加到现有df中,如中所示question@azmath,请参阅答案中的其他信息。下次请再创建一个可复制的示例。你好@phiver,谢谢!然而,我无法复制。它显示一个错误:错误:
mutate()`input
close
有问题。x无法导入“AMZN”。HTTP错误401。ℹ 输入
close
map2(股票代码、日期、获取价格)
。运行
rlang::last_error()
查看错误发生的位置。`@azmath,你能提供你的data.frame的一个小的
dput
吗?看起来您的日期可能不是预期格式。您确实有tiingo的api,不是吗?你可以从他们那里免费得到一个。
library(quantmod)
my_api <- "my_api" # <- here goes your tiingo api
amzn <- getSymbols("AMZN", auto.assign = FALSE, 
                   src = "tiingo",
                   api = my_api,
                   from = "2017-02-07",
                   to = "2017-02-07")

amzn
           AMZN.Open AMZN.High AMZN.Low AMZN.Close AMZN.Volume
2017-02-07    809.31    816.16    807.5      812.5     3466091
library(quantmod)
library(dplyr)
library(purrr)

my_api <- "my_api"  # <- here goes your tiingo api


# helper function to just get the close price
get_price <- function(ticker, date) {
  data <- getSymbols(ticker, 
                    auto.assign = FALSE, 
                    src = "tiingo",
                    api = my_api,
                    from = date,
                    to = date)
  
  out <- as.numeric(quantmod::Cl(data))
  out
}


my_data %>% 
  mutate(close = map2(ticker, date, get_price))

        date ticker revenue profit close
1 2017-02-07   AMZN   10000     10 812.5
2 2018-03-05   MSFT   20000     20 93.64
my_data <- data.frame(date = c("2017-02-07", "2018-03-05"),
                      ticker = c("AMZN", "MSFT"),
                      revenue = c(10000, 20000),
                      profit = c(10, 20))