2011-05-15 88 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>