R 如何找到特定日期的股价?
使用quantmod或tidy quant,可以从一系列时段下载股票价格。然而,我希望在现有的数据框架中添加一个股票价格列,其中包含股票代码和日期。在谷歌电子表格中,有一个简单的公式来计算特定日期的股价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 ...
=谷歌金融(“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()`inputclose
有问题。x无法导入“AMZN”。HTTP错误401。ℹ 输入close
是map2(股票代码、日期、获取价格)
。运行rlang::last_error()
查看错误发生的位置。`@azmath,你能提供你的data.frame的一个小的dput
吗?看起来您的日期可能不是预期格式。您确实有tiingo的api,不是吗?您可以从他们那里免费获得一个。谢谢,但问题是如何将该价格添加到现有df中,如中所示question@azmath,请参阅答案中的其他信息。下次请再创建一个可复制的示例。你好@phiver,谢谢!然而,我无法复制。它显示一个错误:错误:
mutate()`inputclose
有问题。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))