Эффективная обработка данных (складские данные) - PullRequest
1 голос
/ 27 мая 2020

Вот коды, с которых я начинаю:

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)

Как вы видите результат, первые два столбца - это цена открытия, а третий и четвертый столбцы - высокая цена. Я могу получить то, что хочу, с этими кодами, но возникают ошибки, когда я пытаюсь импортировать тысячи данных о запасах, поэтому я не могу их использовать. Если возможно, я хочу сделать пробел между набором данных (открытие, максимум, минимум, закрытие, скорректированный и объем)

Что я могу сделать для этого?

1 Ответ

0 голосов
/ 27 мая 2020

Раствор 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))
...