【发布时间】:2020-05-27 03:33:12
【问题描述】:
下面是我开始的代码:
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)
如您所见,前两列是开盘价,第三和第四列是最高价。我可以用这些代码得到我想要的输出,但是当我尝试导入数千个股票数据时会出现错误,所以我不能使用这些。如果可能的话,我想在数据集(开盘价、最高价、最低价、收盘价、调整价和成交量)之间留出一个空间
我该怎么做?
【问题讨论】:
-
您想为开盘、高盘、低盘、收盘等设置单独的数据框吗?或者类似这样的工作
Rawdata %>% rownames_to_column('Date') %>% pivot_longer(cols = -Date,names_to = c('ticker', '.value'), names_sep = '\\.') -
您好 Ronak,再次感谢您!我刚刚运行代码并收到错误:rownames_to_column(., "Date") 中的错误:找不到函数 "rownames_to_column" 我需要激活任何包或其他东西吗?我希望所有数据都显示在一个页面中,就像我上传的图片一样。
-
是的,
rownames_to_column来自tibble,pivot_longer来自tidyr。如果您已经安装了tidyverse,您可以使用library(tidyverse)。 -
很抱歉 Ronak 打扰你了。我想要的格式非常像第二张图片。列名是日期,每个框由代码(行名)和股票数据组成。如您所见,前三列只有开盘价。而从第四列和第六列开始,只有高价。我深深地感谢你的帮助。这是我单独尝试了一个月的方法。
-
嗯,R 与 excel 不同。 “完全像图片”不是分享预期输出的好方法。尝试在 R 中手动创建预期的输出,然后将其发布在此处,这将有助于了解您想要什么。
标签: r data-wrangling