我是stackoverflow和R编程的新手。
假设我有以下数据:
time<-as.factor(c(142250,101449,85829))
as.data.frame(time)
这将返回以下内容:
time
1 142250
2 101449
3 85829
我想要的是将上述内容转换为带有分号的时间戳,例如:
142250将是14:22:50
我能够使用chron包找到以下代码:
library('chron')
times(gsub("(..)(..)(..)", "\\1:\\2:\\3", date))
哪个返回
[1] 14:22:50 10:14:49 **<NA>**
如您所见,问题是如果少于6个字符,它将返回一个NA。
我追求的输出是返回以下结果:
[1] 14:22:50 10:14:49 8:58:29
我相信我可能必须进行某种循环,但是我不确定该怎么做?
任何帮助都感激不尽。
因此,为了达到所需的输出,您可以使用sprintf
并0
在字符串小于6的情况下添加前导,尽管请参阅@Rolands注释,并请提供更多的清晰度
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句