R 在时间戳hhmmss中插入冒号
我是stackoverflow和R编程新手 假设我有以下数据:R 在时间戳hhmmss中插入冒号,r,time-format,R,Time Format,我是stackoverflow和R编程新手 假设我有以下数据: time<-as.factor(c(142250,101449,85829)) as.data.frame(time) 我想将上述内容转换为带有分号的时间戳,例如: 142250将是14:22:50 我能够使用chron软件包找到以下代码: library('chron') times(gsub("(..)(..)(..)", "\\1:\\2:\\3", date)) 返回 [1] 14:22:50 10:14:49 *
time<-as.factor(c(142250,101449,85829))
as.data.frame(time)
我想将上述内容转换为带有分号的时间戳,例如:
142250将是14:22:50
我能够使用chron软件包找到以下代码:
library('chron')
times(gsub("(..)(..)(..)", "\\1:\\2:\\3", date))
返回
[1] 14:22:50 10:14:49 **<NA>**
我相信我可能不得不做一些循环,但我不知道该怎么做
任何帮助都将不胜感激。因此,为了达到您想要的输出,您可以使用
sprintf
并在字符串短于6的情况下添加一个前导0
,尽管请参见@rollands注释并提供更清晰的说明
library('chron')
time <- sprintf("%06d", as.numeric(as.character(time)))
times(gsub("(..)(..)(..)", "\\1:\\2:\\3", time))
## [1] 14:22:50 10:14:49 08:58:29
library('chron')
时间因此,为了达到您想要的输出,您可以使用sprintf
,并在字符串短于6的情况下添加一个前导0
,尽管请参见@rollands注释并提供更清晰的说明
library('chron')
time <- sprintf("%06d", as.numeric(as.character(time)))
times(gsub("(..)(..)(..)", "\\1:\\2:\\3", time))
## [1] 14:22:50 10:14:49 08:58:29
library('chron')
时间我很想避免使用正则表达式,而只是简单地使用
time我倾向于避免使用正则表达式,而只使用
时间因此,11111
保证是01:11:11
而不是11:01:11
或11:11:01
?是的,这是正确的!感谢您指出,11111
保证是01:11:11
,而不是11:01:11
或11:11:01
?是的,这是正确的!谢谢你指出,嗨,大卫,这非常有效!非常感谢。我没有意识到“sprintf”的功能:)嗨,大卫,它工作得很好!非常感谢。我不知道“sprintf”函数:)
library('chron')
time <- sprintf("%06d", as.numeric(as.character(time)))
times(gsub("(..)(..)(..)", "\\1:\\2:\\3", time))
## [1] 14:22:50 10:14:49 08:58:29
time <- sprintf("%06d", as.numeric(as.character(time)))
paste(
substring(time, 1, 2),
substring(time, 3, 4),
substring(time, 5, 6),
sep = ":"
)