2011-05-15 61 views
3

我有在Excel电子表格其中包括引用这些日期不同证券价格的日期,然后后续列的第一行。[R附上日期时间序列

我保存Excel文件为CSV,然后导入使用

prices=read.csv(file="C:/Documents and Settings/Hugh/My Documents/PhD/Option prices.csv",header = TRUE, sep = ",") 

这在正确的时间序列数据

x<-ts(prices[,2]) 

,但没有附加的日期到Excel。

然而,日期均指工作日。所以,虽然一般来说,他们代表周一至周五,这并不总是因为节假日等

我怎能创造一个日期是从csv文件的第一列读取时间序列的情况下?我找不到R中的例子,这是做

+1

请显示日期和时间的第一行,也许在其他列中的随机数据。 – 2011-05-15 18:34:21

+1

请不要在这里交叉后和[R-HELP(https://stat.ethz.ch/pipermail/r-help/2011-May/278150.html)。 – 2011-05-15 22:03:33

回答

5

当你没有给出任何数据,这里是一个虚构的data.frame:

R> DF <- data.frame(date="2011-05-15", time=c("08:25:00", "08:45:00", 
+     "09:05:11"), val=rnorm(3, 100, 5)) 
R> DF 
     date  time  val 
1 2011-05-15 08:25:00 99.5926 
2 2011-05-15 08:45:00 95.8724 
3 2011-05-15 09:05:11 96.6436 
R> DF <- within(DF, posix <- as.POSIXct(paste(date, time))) 
R> DF 
     date  time  val    posix 
1 2011-05-15 08:25:00 99.5926 2011-05-15 08:25:00 
2 2011-05-15 08:45:00 95.8724 2011-05-15 08:45:00 
3 2011-05-15 09:05:11 96.6436 2011-05-15 09:05:11 
R> 

我用within(),您可以使用其他意味着要分配新列。关键是,paste()让你列组合在一起,你可以使用其它的R功能根据需要修改数据。

具有日期和时间在合适的类型解析(如POSIXct)的主要优点是,其他功能就可以使用它。这里是zoo

R> z <- with(DF, zoo(val, order.by=posix)) 
R> summary(z) 
    Index        z  
Min. :2011-05-15 08:25:00.00 Min. :95.9 
1st Qu.:2011-05-15 08:35:00.00 1st Qu.:96.3 
Median :2011-05-15 08:45:00.00 Median :96.6 
Mean :2011-05-15 08:45:03.67 Mean :97.4 
3rd Qu.:2011-05-15 08:55:05.50 3rd Qu.:98.1 
Max. :2011-05-15 09:05:11.00 Max. :99.6 
R>