Here is a way to do, I'm sure there is a more elegant way
library(tidyverse)
dd = data.frame(stringsAsFactors=FALSE,
timestamp = c("2018-11-08 07:42:11", "2018-11-08 07:42:55",
"2018-11-08 07:43:41", "2018-11-08 07:44:07",
"2018-11-08 07:44:57", "2018-11-08 07:45:44", "2018-11-08 07:46:28",
"2018-11-08 07:47:20", "2018-11-08 07:47:56", "2018-11-08 07:48:48"),
hostname = c("host1",
"host2",
"host2",
"host3",
"host2",
"host5",
"host5",
"host3",
"host3",
"host1"),
event_name = c("save", "upload", "render", "upload",
"save", "save", "render", "upload",
"upload", "render"),
event_type = c("STOP", "STOP", "STOP", "STOP", "STOP", "STOP", "STOP",
"STOP", "STOP", "STOP"),
time_task = c("25.8089997768402", "40.319000005722", "42.9910001754761",
"24.6840000152588", "46.1050000190735", "44.2489998340607",
"41.2440001964569", "49.4800000190735", "33.7000000476837",
"49.0550000667572"),
task_id = c("00390eee-c26c-41da-a02d-556bb7fcac67",
"dbc599f6-694b-46c4-a864-e09ab881af37",
"0ad8d29d-d30c-48c9-bd0a-fbea985464b2", "52881801-4d75-4ada-a118-682aa1d5ddf9",
"5c14d761-26af-4602-a51d-6378a4ad7c24",
"fa8d5709-ffb6-4a8b-bd73-0076c1654d49", "0ebfe158-0c86-4cde-8742-20d13cc4076b",
"403c1ca4-f5d3-4831-8a66-0f8be10f5aeb",
"ffd69831-0ba4-457b-b8a8-e37c49779d94", "70a9ab55-b17f-4df6-82ef-146425d7bbfa"))
summary(as.numeric(dd$time_task))
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 24.68 35.35 42.12 39.76 45.64 49.48
dd %>%
mutate(time_task = parse_number(time_task),
groups = case_when(
between(time_task, min(time_task),
quantile(time_task, probs = .25)) ~ "Group 1",
between(time_task, quantile(time_task, probs = .25),
median(time_task)) ~ "Group 2",
between(time_task, median(time_task), quantile(time_task, probs = .75)) ~ "Group 3",
between(time_task, quantile(time_task, probs = .75), max(time_task)) ~ "Group 4",
TRUE ~ "ERROR"
))
#> timestamp hostname event_name event_type time_task
#> 1 2018-11-08 07:42:11 host1 save STOP 25.809
#> 2 2018-11-08 07:42:55 host2 upload STOP 40.319
#> 3 2018-11-08 07:43:41 host2 render STOP 42.991
#> 4 2018-11-08 07:44:07 host3 upload STOP 24.684
#> 5 2018-11-08 07:44:57 host2 save STOP 46.105
#> 6 2018-11-08 07:45:44 host5 save STOP 44.249
#> 7 2018-11-08 07:46:28 host5 render STOP 41.244
#> 8 2018-11-08 07:47:20 host3 upload STOP 49.480
#> 9 2018-11-08 07:47:56 host3 upload STOP 33.700
#> 10 2018-11-08 07:48:48 host1 render STOP 49.055
#> task_id groups
#> 1 00390eee-c26c-41da-a02d-556bb7fcac67 Group 1
#> 2 dbc599f6-694b-46c4-a864-e09ab881af37 Group 2
#> 3 0ad8d29d-d30c-48c9-bd0a-fbea985464b2 Group 3
#> 4 52881801-4d75-4ada-a118-682aa1d5ddf9 Group 1
#> 5 5c14d761-26af-4602-a51d-6378a4ad7c24 Group 4
#> 6 fa8d5709-ffb6-4a8b-bd73-0076c1654d49 Group 3
#> 7 0ebfe158-0c86-4cde-8742-20d13cc4076b Group 2
#> 8 403c1ca4-f5d3-4831-8a66-0f8be10f5aeb Group 4
#> 9 ffd69831-0ba4-457b-b8a8-e37c49779d94 Group 1
#> 10 70a9ab55-b17f-4df6-82ef-146425d7bbfa Group 4
Created on 2019-01-16 by the reprex package (v0.2.1)