将数字转换为时间

fil*_*s21 7 time r

我手工输入了数据,为了节省时间,我的时间里没有包含任何标点符号.因此,例如,上午8:32我输入为832. 3:34 pm我输入为1534.我正在尝试使用'chrono'软件包(http://cran.r-project.org/web/packages/chron R中的/chron.pdf)将这些转换为时间格式,但chrono似乎需要小时和分钟值之间的分隔符.我该如何解决这个问题或使用另一个包来将我的数字转换成次数?

如果你想批评我提出之前已经回答的问题,请提供一个指向所述答案的链接,因为我已经搜索过并且无法找到它.然后批评走了.

Jaa*_*aap 6

我认为你不一定需要chron包.什么时候:

x  <-  c(834, 1534)
Run Code Online (Sandbox Code Playgroud)

然后:

time <- substr(as.POSIXct(sprintf("%04.0f", x), format='%H%M'), 12, 16)
time

[1] "08:34" "15:34"
Run Code Online (Sandbox Code Playgroud)

应该给你想要的结果.当您还想包含一个代表日期的变量时,您可以使用以下代码:

df$datetime <- as.POSIXct(paste(df$yymmdd, sprintf("%04.0f", df$x)), format='%Y%m%d %H%M%S')
Run Code Online (Sandbox Code Playgroud)


luk*_*keA 4

这是sub使用正则表达式的解决方案:

set.seed(1); times <- paste0(sample(0:23,10), sample(0:59,10)) # ex. data
sub("(\\d+)(\\d{2})", "\\1:\\2", times) # put in delimitter
# [1] "6:12"  "8:10"  "12:39" "19:21" "4:43"  "17:27" "18:38" "11:52" "10:19" "0:57" 
Run Code Online (Sandbox Code Playgroud)