我正在读取降水时间序列的 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: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"
关于r - 将时间转换为时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14217777/