R 如何将15分钟的数据转换为datetime格式的时间序列,以便使用quantmod绘制它?

R 如何将15分钟的数据转换为datetime格式的时间序列,以便使用quantmod绘制它?,r,datetime,timestamp,time-series,quantmod,R,Datetime,Timestamp,Time Series,Quantmod,所以我得到了这个数据,我想把它转换成xts,这样我就可以用quantmod来绘制它。(这是15米图表) 起初,我认为使用xts函数可以完成这项工作,但后来我意识到它只会减少分钟数 > sampled.after<-xts(sample[2:ncol(sample)],as.Date(sample$Date)) > sampled.after Open High Low Close Vol.at.Price Volume 2016-06-15

所以我得到了这个数据,我想把它转换成xts,这样我就可以用quantmod来绘制它。(这是15米图表)

起初,我认为使用xts函数可以完成这项工作,但后来我意识到它只会减少分钟数

> sampled.after<-xts(sample[2:ncol(sample)],as.Date(sample$Date))
> sampled.after
             Open   High   Low  Close Vol.at.Price Volume
2016-06-15 1.7381 1.7600 1.710 1.7399       1.7399 176000
2016-06-15 1.7389 1.7400 1.725 1.7350       1.7350 152900
2016-06-15 1.7350 1.7650 1.720 1.7550       1.7550 179900
2016-06-15 1.7550 1.7600 1.740 1.7500       1.7500 130800
2016-06-15 1.7550 1.7800 1.745 1.7800       1.7800 188400
2016-06-15 1.7800 1.7899 1.730 1.7300       1.7300 256700
2016-06-15 1.7300 1.7800 1.730 1.7664       1.7664 151900
2016-06-15 1.7600 1.7700 1.740 1.7600       1.7600  74100
2016-06-15 1.7501 1.8000 1.750 1.7850       1.7850 232300
2016-06-15 1.7900 1.8200 1.760 1.7600       1.7600 183300
2016-06-15 1.7600 1.7700 1.730 1.7400       1.7400 151600
2016-06-15 1.7400 1.7599 1.650 1.7150       1.7150 443500
2016-06-15 1.7100 1.7100 1.710 1.7100       1.7100   4628
2016-06-15 1.7100 1.7100 1.710 1.7100       1.7100   2000
2016-06-15 1.6900 1.6900 1.680 1.6900       1.6900   1050
2016-06-15 1.6900 1.6900 1.690 1.6900       1.6900    100
>sampled.after sampled.after
开盘高位低位收盘价成交量
2016-06-15 1.7381 1.7600 1.710 1.7399       1.7399 176000
2016-06-15 1.7389 1.7400 1.725 1.7350       1.7350 152900
2016-06-15 1.7350 1.7650 1.720 1.7550       1.7550 179900
2016-06-15 1.7550 1.7600 1.740 1.7500       1.7500 130800
2016-06-15 1.7550 1.7800 1.745 1.7800       1.7800 188400
2016-06-15 1.7800 1.7899 1.730 1.7300       1.7300 256700
2016-06-15 1.7300 1.7800 1.730 1.7664       1.7664 151900
2016-06-15 1.7600 1.7700 1.740 1.7600       1.7600  74100
2016-06-15 1.7501 1.8000 1.750 1.7850       1.7850 232300
2016-06-15 1.7900 1.8200 1.760 1.7600       1.7600 183300
2016-06-15 1.7600 1.7700 1.730 1.7400       1.7400 151600
2016-06-15 1.7400 1.7599 1.650 1.7150       1.7150 443500
2016-06-15 1.7100 1.7100 1.710 1.7100       1.7100   4628
2016-06-15 1.7100 1.7100 1.710 1.7100       1.7100   2000
2016-06-15 1.6900 1.6900 1.680 1.6900       1.6900   1050
2016-06-15 1.6900 1.6900 1.690 1.6900       1.6900    100

如何将其转换为时间序列,以便绘制蜡烛图

as.Date
只返回时间戳的日期部分。使用
as.POSIXct
保留完整的时间戳。此外,您需要提供一个
格式
参数,以便
as.POSIXct
能够理解您的日期格式。如果没有
format
参数,它只会将时间戳截断为日期部分。以下是几个例子:

as.Date
仅返回日期

as.Date("2016-06-15 pm 1:15:00")  
as.POSIXct
不带
格式
参数返回日期加默认时区

as.POSIXct("2016-06-15 pm 1:15:00")  
将正确的
格式
添加到
as.POSIXct
以获取完整的时间戳

as.POSIXct("2016-06-15 pm 1:15:00", format="%Y-%m-%d %p %I:%M:%S")
有关如何解释上述
格式
参数的详细信息,请参阅
strtime
的帮助

将正确的
格式
tz
添加到
as.POSIXct
中,以获得完整的时间戳和正确的时区

as.POSIXct("2016-06-15 pm 1:15:00")  
请注意,
as.POSIXct
还将我的本地时区添加到结果(PDT)中。因此,您可能还应该添加一个时区参数,以确保应用了正确的时区(特别是如果您在不同的时区中有来自交换的引号)。例如:

as.POSIXct("2016-06-15 pm 1:15:00", format="%Y-%m-%d %p %I:%M:%S", tz="America/New_York")

as.Date
只返回时间戳的日期部分。使用
as.POSIXct
保留完整的时间戳。除了显示EDT之外,它仍然给我相同的结果。还有别的办法吗?
as.POSIXct("2016-06-15 pm 1:15:00", format="%Y-%m-%d %p %I:%M:%S")
[1] "2016-06-15 13:15:00 PDT"
as.POSIXct("2016-06-15 pm 1:15:00", format="%Y-%m-%d %p %I:%M:%S", tz="America/New_York")
[1] "2016-06-15 13:15:00 EDT"