gpt4 book ai didi

r - 将格式不正确的字符串转换为 posixct

转载 作者:行者123 更新时间:2023-12-01 22:20:23 27 4
gpt4 key购买 nike

我下载了一些气候再分析数据,花了很多时间从 grib 转换为 cdf,最后现在我成功地使其在 R 中工作。我遇到的下一个问题是时间是一个字符向量,类似于以下内容:

tt =c(
"20090101","20090101.25","20090101.5","20090101.75","20090102",
"20090102.25","20090102.5","20090102.75","20090103","20090103.25",
"20090103.5","20090103.75","20090104","20090104.25","20090104.5",
"20090104.75")

其中前四位数字是年份,然后是月份,然后是日期,最后是日期的一部分:yyyymmdd...

如何将其转换为格式为 yyyy-mm-dd HH:MM 的 posixct 时间?

我会尝试

as.POSIXct(tt,'%Y%m%d')

但是由于白天的分数,这在这里没有帮助。

最终结果应该是:

    tt
[1] "2009-01-01 00:00" "2009-01-01 06:00" "2009-01-01 12:00"
"2009-01-01 18:00" "2009-01-02 00:00"

有人可以提出解决方案吗?

注意:我可以完成一半

as.Date(tt, "%Y%m%d")

但不知道如何处理分数

最佳答案

开头为:

tt=c("20090101"  ,  "20090101.25" ,"20090101.5" , "20090101.75" ,"20090102")

转换日期部分,然后提取小数部分并添加为以秒为单位的一天的小数部分:

as.POSIXct(tt,format="%Y%m%d") + (as.numeric(tt) - as.integer(tt))*(60*60*24)
[1] "2009-01-01 00:00:00 GMT" "2009-01-01 06:00:00 GMT"
[3] "2009-01-01 12:00:00 GMT" "2009-01-01 18:00:00 GMT"
[5] "2009-01-02 00:00:00 GMT"

关于r - 将格式不正确的字符串转换为 posixct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30330232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com