我从雅虎下载股票市场数据(下面的代码) - 对于上下文,起初我尝试使用getSymbols(^DJI)
,但我收到了可能与雅虎有关的错误消息......不同的问题。
重点是,一旦下载并导入R,我会将其按照足够接近时间序列的格式进行按摩,以便能够运行chartSeries(DJI)
:
require(RCurl)
require(foreign)
x <- getURL("https://raw.githubusercontent.com/RInterested/datasets/gh-pages/%5EDJI.csv")
DJI <- read.csv(text = x, sep =",")
DJI$Date <- as.Date(DJI$Date, format = "%m/%d/%Y") # Formatting Date as.Date
rownames(DJI) <- DJI$Date # Assigning Date to row names
DJI$Date <- NULL # Removing the Date column
chartSeries(DJI, type="auto", theme=chartTheme('white'))
即使数据集实际上不是时间序列:
> is.ts(DJI)
[1] FALSE
当我试图找出道琼斯指数的最低收盘价时,就会出现问题。我可以做点像
> DJI[DJI$Close == min(DJI$Close),]
Open High Low Close Adj.Close Volume
1985-05-01 1257.18 1262.81 1239.07 1242.05 1242.05 10050000
产生整行,包括行名称(1985-05-01
),这是我想要的唯一部分。但是,如果我坚持只获取实际日期,我必须在其中一列中兼顾包含日期的第二个数据集:
require(RCurl)
require(foreign)
x <- getURL("https://raw.githubusercontent.com/RInterested/datasets/gh-pages/%5EDJI.csv")
DJI <- read.csv(text = x, sep =",")
DJI$Date <- as.Date(DJI$Date, format = "%m/%d/%Y") # Formatting Date as.Date
rownames(DJI) <- DJI$Date # Assigning Date to row names
DJI.raw <- DJI # Second dataset for future subsetting
DJI$Date <- NULL # Removing the Date column
允许我运行
> DJI.raw$Date[DJI.raw$Close == min(DJI.raw$Close)]
[1] "1985-05-01"
此外,我不认为将数据集转换为.xts
文件会有所帮助。
答案 0 :(得分:0)
我不清楚你想要什么,但听起来你只想要约会?你提到xts不是一个选项(本来可以运行)
time(as.xts(DJI))[which.min(DJI$Close)] # POSIXct format
# [1] "1985-05-01 EDT"
否则,简单的rownames
+ which.min
会为您获取日期吗?
as.Date(rownames(DJI)[which.min(DJI$Close)]) # Date format
# [1] "1985-05-01"