我需要在R
中将数字字段转换为时间格式我的数字字段也有点脏,但数据显示为
9,
1235,
1033,
每个号码都是午夜过后的分钟数。即数字“9”应解释为“午夜过了9分钟”。
我尝试使用strptime(1122, format="%H.%M.")
但我有一个错误。我得到NaN
请帮忙。
答案 0 :(得分:3)
试试这个:
> library(chron)
> x <- c(9, 1235, 1033)
> times(x / (24 * 60))
[1] 00:09:00 20:35:00 17:13:00
答案 1 :(得分:1)
这是一个基础版本。您需要确保所有内容都包含4位数字:
vec <- c(9, 1235, 1033)
vec.pad <- sapply(vec, function(x) paste0(c(rep(0, 4 - nchar(x)), x), collapse=""))
strptime(vec.pad, format="%H%M")
# [1] "2014-03-23 00:09:00" "2014-03-23 12:35:00" "2014-03-23 10:33:00"
答案 2 :(得分:0)
POSIXct时间是以GMT格式生成的,我不知道可靠的方法来阻止这种情况:
> tim <- as.POSIXct(Sys.Date())+times*60
> tim
[1] "2014-03-22 17:09:00 PDT" "2014-03-23 13:35:00 PDT" "2014-03-23 10:13:00 PDT"
> tim <- as.POSIXct(Sys.Date(),tz="Americas/Los_Angeles")+times*60
> tim # Any suggestions to improve this are welcome.
[1] "2014-03-22 17:09:00 PDT" "2014-03-23 13:35:00 PDT" "2014-03-23 10:13:00 PDT"
所以我加上7个小时来获得太平洋夏令时(我本地人):
> tim <- as.POSIXct(Sys.Date() )+times*60+3600*7
> tim
[1] "2014-03-23 00:09:00 PDT" "2014-03-23 20:35:00 PDT" "2014-03-23 17:13:00 PDT"
你可以得到一个字符输出,隐藏这些是&#34; GMT&#34;区域设置时间:
> tim <- as.POSIXct(Sys.Date() )+times*60
> format(tim, tz="GMT")
[1] "2014-03-23 00:09:00" "2014-03-23 20:35:00" "2014-03-23 17:13:00"
或没有日期:
> format(tim, "%H:%M:%S", tz="GMT")
[1] "00:09:00" "20:35:00" "17:13:00"