【问题标题】:Using R and an API to extract multiple stock market data使用 R 和 API 提取多个股市数据
【发布时间】:2021-01-29 00:50:51
【问题描述】:

我已通过股票市场数据的数据提供商设置了 API 访问密钥。使用此密钥,我可以根据股票代码提取股市数据(例如,APPL:Apple,FB:Facebook 等)。

我可以使用 R 在单个股票代码的基础上提取股票数据,但我想编写一段代码,根据多个股票代码提取数据并将它们全部放在一个数据帧中(结构相同所有股票)。我不确定如何创建一个循环来在每次提取股票数据时更新数据框。我收到一个名为“未提供编码:默认为 UTF-8”的错误,这并不能告诉我太多信息。一个正确的方向会很有帮助。

我有以下代码:

if (!require("httr")) {
  install.packages("httr")
  library(httr)
}

if (!require("jsonlite")) {
  install.packages("jsonlite")
  library(jsonlite)
}

stocks <- c("FB","APPL") #Example stocks actual stocks removed

len <- length(stocks)

url <- "URL" #Actual url removed
access_key <- "MY ACCESS KEY" #Actual access key removed

extraction <- lapply(stocks[1:len],function(i){
  
  call1 <- paste(url,"?access_key=",access_key,"&","symbols","=",stocks[i],sep="")
  
  get_prices <- GET(call1)
  
  get_prices_text <- content(get_prices, "text")
  
  get_prices_json <- fromJSON(get_prices_text, flatten = TRUE)
  
  get_prices_df <- as.data.frame(get_prices_json)
  
  return(get_prices_df)
  
}
)

file <- do.call(rbind,extraction)

【问题讨论】:

    标签: r api extract lapply


    【解决方案1】:

    我意识到这不是最有效的方法。更好的方法是更新 url 以包含多个股票,而不是使用 lapply 函数。因此,我结束了这个问题。

    【讨论】:

      猜你喜欢
      • 2013-03-14
      • 1970-01-01
      • 2020-08-04
      • 1970-01-01
      • 2012-03-09
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多