我怎么"1330"变成"13:30"或"133000"变成"13:30:00"?基本上,我想在每对数字之间插入一个冒号.我正在尝试将字符转换成时间.
似乎应该有一种非常优雅的方式来做到这一点,但我想不到它.我想使用的某种组合的paste()和substr(),而是一种优雅的解决方案是逃避我.
编辑:需要转换的示例字符串:
X <- c("120000", "120500", "121000", "121500", "122000", "122500", "123000") #example of noon to 12:30pm
Run Code Online (Sandbox Code Playgroud)
gsub("(\\d{2})(?=\\d{2})", "\\1:", X, perl = TRUE)
# [1] "12:00:00" "12:05:00" "12:10:00" "12:15:00" "12:20:00" "12:25:00" "12:30:00"
Run Code Online (Sandbox Code Playgroud)
这将替换两个字符的每个序列,而不是带有相同字符的边界,后跟冒号:
gsub("(..)\\B", "\\1:", X)
Run Code Online (Sandbox Code Playgroud)
在示例字符串上,它给出:
[1] "12:00:00" "12:05:00" "12:10:00" "12:15:00" "12:20:00" "12:25:00" "12:30:00"
Run Code Online (Sandbox Code Playgroud)