【发布时间】: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)
【问题讨论】: