使用 R 和 API 提取多个股票市场数据
Using R and an API to extract multiple stock market data
我已经为股票市场数据的数据提供者设置了一个 API 访问密钥。有了这个密钥,我就可以根据代码提取股票市场数据(例如 APPL:Apple,FB:Facebook 等)。
我可以使用 R 在单个代码的基础上提取股票数据,但我想编写一段代码,根据多个股票代码提取数据并将它们全部放在一个数据框中(结构是所有股票都一样)。我不确定如何创建一个循环来在每次提取股票数据时更新数据框。我收到一个名为 'No encoding supplied: defaulting to 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)
我意识到这不是最有效的方法。更好的方法是更新 url 以包含多只股票,而不是使用 lapply 函数。因此,我关闭了这个问题。
我已经为股票市场数据的数据提供者设置了一个 API 访问密钥。有了这个密钥,我就可以根据代码提取股票市场数据(例如 APPL:Apple,FB:Facebook 等)。
我可以使用 R 在单个代码的基础上提取股票数据,但我想编写一段代码,根据多个股票代码提取数据并将它们全部放在一个数据框中(结构是所有股票都一样)。我不确定如何创建一个循环来在每次提取股票数据时更新数据框。我收到一个名为 'No encoding supplied: defaulting to 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)
我意识到这不是最有效的方法。更好的方法是更新 url 以包含多只股票,而不是使用 lapply 函数。因此,我关闭了这个问题。