Параметр
A tidyverse
с использованием separate
и положительным прогнозным шаблоном
library(tidyverse)
df %>% separate(time, c("hours", "minutes"), sep = "(?=\\d{2}$)")
# hours minutes
#1 5 16
#2 7 15
#3 16 25
Объяснение: sep = "(?=\\d{2}$)"
переводит отдельные записи в две части в точке, где следующие и последние два символадве цифры.
Или альтернатива Base R с использованием strsplit
t(sapply(strsplit(as.character(df$time), ""), function(x)
as.numeric(rev(tapply(
x,
rev(rep(1:ceiling(length(x) / 2), each = 2, length.out = length(x))),
FUN = function(x) paste0(x, collapse = ""))))))
# [,1] [,2]
#[1,] 5 16
#[2,] 7 15
#[3,] 16 25
Пример данных
df <- read.table(text =
"time
516
715
1625
", header = T)