以下是我开始使用的代码:
library(quantmod)
library(timetk)
library(dplyr)
library(tibble)
library(tidyr)
mdate <- "2019-05-01"
edate <- "2019-05-03"
tickers <- c("MMM","C", "AAPL")
for(ticker in tickers)
Open_Raw <- cbind(Open_Raw, getSymbols(ticker, from = mdate, to = edate, auto.assign = F)[,1])
timetk::tk_tbl(Open_Raw)
Open_Raw <- timetk::tk_tbl(Open_Raw)[, -1]
colnames(Open_Raw) = tickers
## Open Price
Open_Raw <- NULL
for(ticker in tickers)
Open_Raw <- cbind(Open_Raw, getSymbols(ticker, from = mdate, to = edate, auto.assign = F)[,1])
Topen_Raw <- t(Open_Raw)
## High Price
High_Raw <- NULL
for(ticker in tickers)
High_Raw <- cbind(High_Raw, getSymbols(ticker, from = mdate, to = edate, auto.assign = F)[,2])
Thigh_Raw <- t(High_Raw)
## Low Price
Low_Raw <- NULL
for(ticker in tickers)
Low_Raw <- cbind(Low_Raw, getSymbols(ticker, from = mdate, to = edate, auto.assign = F)[,2])
Tlow_Raw <- t(Low_Raw)
## write in the same way for Close, Adjusted and Volume, and;
##Cbind Open and High
Open_High <- cbind(Topen_Raw, Thigh_Raw)
##Cbind Open_High and Low_Raw
Open_to_Low <- cbind(Open_High, Tlow_Raw)正如您看到的输出,前两列是Open price,第三和第四列是High price。我可以使用这些代码获得我想要的输出,但是当我尝试导入数千个股票数据时会出现错误,所以我不能使用这些数据。如果可能,我想在数据集之间留出一个空间(Open、High、Low、Close、Adjusted和Volume)
我能做些什么来做到这一点呢?
发布于 2020-05-27 12:52:25
Base R解决方案:
# Transpose data.frame:
td_data <- within(data.frame(price_var = row.names(t(data)), t(data), row.names = NULL),
{
ticker_cd <- as.factor(gsub("[.].*", "", price_var))
price_var <- as.factor(gsub(".*[.]", "", price_var))
}
)
# Reshape:
do.call("cbind", split(td_data, td_data$price_var))https://stackoverflow.com/questions/62034995
复制相似问题