我正在读一个降水时间序列的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
有什么暗示吗?感谢
答案 0 :(得分: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"
答案 1 :(得分:0)
如果x
是您的日期和日期/时间向量,请尝试以下方法:
as.POSIXct(paste(x, "00:00"), format = "%m/%d/%Y %k:%M")