2013-01-08 65 views
2

轉換時間我讀沉澱時間序列的csv文件,問題是到時候00:00時間序列

head(C1) 
      fecha precip 
1  09/04/2012  0 
2 09/04/2012 0:05  0 
3 09/04/2012 0:10  0 
4 09/04/2012 0:20  0 
5 09/04/2012 0:25  0 
6 09/04/2012 0:30  0 

我想獲得一個動物園對象,但如果我改變的時間POSIXct,或POSIXlt:

C1$fecha <- as.POSIXct(C1$fecha, format="%d/%m/%Y %k:%M") 

我得到NA上有問題的日期。

head(C1) 
       fecha precip 
1    <NA>  0 
2 2012-04-09 00:05:00  0 
3 2012-04-09 00:10:00  0 
4 2012-04-09 00:20:00  0 
5 2012-04-09 00:25:00  0 
6 2012-04-09 00:30:00  0 

對此有何暗示?謝謝

+1

你是如何讀取文件? –

+0

我使用的是read.csv,因爲我必須對precess進行一些轉換。 – Migue

回答

3

一個解決方案是找到短的字符串,即沒有時間信息。然後轉換成datetime對象之前串聯0:00到每個這些字符串的:

創建採樣數據:

x <- c("09/04/2012", "09/04/2012 0:05", "09/04/2012 0:10", "09/04/2012 0:20", 
     "09/04/2012 0:25", "09/04/2012 0:30") 

使用nchar(),以確定是僅10字符長的元件。然後paste()0:00這些元素:

index <- sapply(x, nchar) == 10 
x[index] <- paste0(x[index], " 0:00") 

as.POSIXct(x, format="%d/%m/%Y %k:%M") 

[1] "2012-04-09 00:00:00 BST" "2012-04-09 00:05:00 BST" "2012-04-09 00:10:00 BST" 
[4] "2012-04-09 00:20:00 BST" "2012-04-09 00:25:00 BST" "2012-04-09 00:30:00 BST" 
0

如果x是您的日期,日期/時間的矢量那就試試這個:

as.POSIXct(paste(x, "00:00"), format = "%m/%d/%Y %k:%M")