gpt4 book ai didi

R将数字转换为时间

转载 作者:行者123 更新时间:2023-12-04 11:43:17 25 4
gpt4 key购买 nike

有人在Excel中给了我非常糟糕的数据,其中日期(例如2015年7月1日)是20150701,时间(例如11:41:23)是114123。有超过50,000行数据,我需要转换这些全部转换为正确的日期和时间对象。这些不是任何时代的秒数,它只是没有破折号或冒号的日期或时间。

我将它们导入到数据框中并使用 ymd() 函数转换了日期,但是我找不到一个函数来执行此操作,hms() 给了我一个错误:

package(lubridate)
df <- readWorksheetFromFile(file="cktime2012.xls", sheet=1)
df$date <- ymd(df$date)
df$time <- hms(df$time)
# Warning message:
# In .parse_hms(..., order = "HM", quiet = quiet) :
# Some strings failed to parse

在运行最后一行之前,我得到了一个看起来像这样的数据框。运行最后一行后,TIMEIN 列将变为所有 NA:
DATEIN      TIMEIN  etc...
2012-02-01 200000 etc...
etc...

对于所有 50,000 行,我需要它看起来像这样。我将 POSIXct 作为标签包含在内,因为我不知道是否可以使用它来帮助转换:
DATEIN      TIMEIN      etc...
2012-02-01 20:00:00 etc...
etc...

最佳答案

TIMEIN总是六个字符(即上午 10 点之前的时间有一个前导零),那么你可以这样做:

df$TIMEIN = paste0(substr(df$TIMEIN,1,2),":",substr(df$TIMEIN,3,4),":", substr(df$TIMEIN,5,6))
df$TIMEIN = hms(df$TIMEIN)

关于R将数字转换为时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31167460/

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