R 在时间序列上转换时间

R 在时间序列上转换时间,r,time-series,zoo,posixct,R,Time Series,Zoo,Posixct,我正在读取降水时间序列的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 我正在尝试获取zoo对象,但如果我将时间更改为POSIXct或POSI

我正在读取降水时间序列的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
我正在尝试获取zoo对象,但如果我将时间更改为POSIXct或POSIXlt:

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

C1$fecha一种解决方案是查找短字符串,即没有时间信息。然后在转换为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")

如果
x
是日期和日期/时间的向量,请尝试以下操作:

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

您是如何读取文件的?我使用read.csv,因为我必须在预处理过程中进行一些转换。
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"
as.POSIXct(paste(x, "00:00"), format = "%m/%d/%Y %k:%M")