r - 将时间转换为时间序列

标签 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

我正在尝试获取动物园对象,但如果我将时间更改为 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/

相关文章:

r - 在R地理编码功能中处理500个内部服务器错误

r - 与一个 data.table 中的多个组互相关

r - 使用 as.yearmon 时 Pivot Wider 导致问题

r - 如何在 R 中创建年/学期格式的日期?

R中矩阵的滚动标准偏差

r - 如何在 Shiny 仪表板的主面板中添加更多空白?

r - 检查 R 中向量的哪些元素位于另一个向量的元素之间

r - R中具有整数变量的非线性优化/编程

python - 如何反向执行 date_range?

Python 时间序列预测(销量)