# Examples of approaches to as.xts conversion

# For brevity use objects committed in as-xts branch of promR fork
devtools::source_url(
  "https://raw.githubusercontent.com/konradzdeb/promR/as-xts/tests/testthat/helper-merticsRaw.R"
)
## SHA-1 hash of file is 89ebbb277f48d5f5cadd36156faefb1076f6655d
# Approach 1: Base --------------------------------------------------------

# Minimise dependencies on external functions and use base + standard functions
base_rng_mtr_xts <- function(x) {
  Metrics_values <-
    lapply(x$data$result$values, function(x)
      as.double(x[, 2]))
  Metrics_values <- do.call("cbind", Metrics_values)
  
  Metrics_timestamps <- as.double(x$data$result$values[[1]][, 1])
  
  Metrics <- cbind(Metrics_timestamps, Metrics_values)
  
  metrics_labels <- x$data$result$metric$job
  colnames(Metrics) <- c("timestamp", metrics_labels)
  
  xts::as.xts(x = Metrics[, 2:ncol(Metrics)],
              order.by = as.POSIXct(Metrics[, 1], origin = "1970-01-01"))
  
}

# Preview
summary(base_rng_mtr_xts(metricsRaw_range))
##      Index                       prometheus     pushgateway     alertmanager  
##  Min.   :2020-09-20 15:05:41   Min.   :64.00   Min.   :10.00   Min.   :35.00  
##  1st Qu.:2020-09-20 15:08:11   1st Qu.:66.00   1st Qu.:10.00   1st Qu.:35.00  
##  Median :2020-09-20 15:10:41   Median :68.00   Median :10.00   Median :35.00  
##  Mean   :2020-09-20 15:10:41   Mean   :67.38   Mean   :10.18   Mean   :35.15  
##  3rd Qu.:2020-09-20 15:13:11   3rd Qu.:68.00   3rd Qu.:10.00   3rd Qu.:35.00  
##  Max.   :2020-09-20 15:15:41   Max.   :71.00   Max.   :11.00   Max.   :36.00  
##       node       
##  Min.   : 8.000  
##  1st Qu.: 9.000  
##  Median : 9.000  
##  Mean   : 9.115  
##  3rd Qu.: 9.000  
##  Max.   :10.000
# Approach 2: no cbind ----------------------------------------------------

# Minimise dependencies on external functions and use base + standard fucntions
base_rng_mtr_xts_no_cbind <- function(x) {
  
  Metrics_values <- lapply(x$data$result$values, function(x) as.double(x[, 2]))
  Metrics_values <- do.call("cbind", Metrics_values)
  
  Metrics_timestamps <- as.double(x$data$result$values[[1]][, 1])
  
  metrics_labels <- x$data$result$metric$job
  colnames(Metrics_values) <- c(metrics_labels)
  
  xts::as.xts(x = Metrics_values,
              order.by = as.POSIXct(Metrics_timestamps, origin = "1970-01-01"))
}

# Preview
summary(base_rng_mtr_xts_no_cbind(metricsRaw_range))
##      Index                       prometheus     pushgateway     alertmanager  
##  Min.   :2020-09-20 15:05:41   Min.   :64.00   Min.   :10.00   Min.   :35.00  
##  1st Qu.:2020-09-20 15:08:11   1st Qu.:66.00   1st Qu.:10.00   1st Qu.:35.00  
##  Median :2020-09-20 15:10:41   Median :68.00   Median :10.00   Median :35.00  
##  Mean   :2020-09-20 15:10:41   Mean   :67.38   Mean   :10.18   Mean   :35.15  
##  3rd Qu.:2020-09-20 15:13:11   3rd Qu.:68.00   3rd Qu.:10.00   3rd Qu.:35.00  
##  Max.   :2020-09-20 15:15:41   Max.   :71.00   Max.   :11.00   Max.   :36.00  
##       node       
##  Min.   : 8.000  
##  1st Qu.: 9.000  
##  Median : 9.000  
##  Mean   : 9.115  
##  3rd Qu.: 9.000  
##  Max.   :10.000
# Approach 3: tidyverse ---------------------------------------------------

# Approach uses tidyverse packages to provide faster way of manipulating data
# and time_tk for easy conversion to xts
library("tidyverse")
## ── Attaching packages ───────────────────────────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2     ✓ purrr   0.3.4
## ✓ tibble  3.0.3     ✓ dplyr   1.0.2
## ✓ tidyr   1.1.2     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library("timetk")

tidy_rng_mtr_xts <- function(x) {
  
  metric_timestamp <- as.POSIXct(as.double(x$data$result$values[[1]][,1]),
                                  origin = "1970-01-01")
  
  metric_values <- x$data$result$values
  metric_values <- bind_cols(map(metric_values, 
                                 .f = ~ as.double(.x[, 2])), .name_repair = "unique")
  metric_values <- bind_cols(metric_timestamp, metric_values)
  names(metric_values) <- c("timestamp", x$data$result$metric$job)
  
  tk_xts(metric_values)
}

# Preview
summary(tidy_rng_mtr_xts(metricsRaw_range))
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
##      Index                       prometheus     pushgateway     alertmanager  
##  Min.   :2020-09-20 15:05:41   Min.   :64.00   Min.   :10.00   Min.   :35.00  
##  1st Qu.:2020-09-20 15:08:11   1st Qu.:66.00   1st Qu.:10.00   1st Qu.:35.00  
##  Median :2020-09-20 15:10:41   Median :68.00   Median :10.00   Median :35.00  
##  Mean   :2020-09-20 15:10:41   Mean   :67.38   Mean   :10.18   Mean   :35.15  
##  3rd Qu.:2020-09-20 15:13:11   3rd Qu.:68.00   3rd Qu.:10.00   3rd Qu.:35.00  
##  Max.   :2020-09-20 15:15:41   Max.   :71.00   Max.   :11.00   Max.   :36.00  
##       node       
##  Min.   : 8.000  
##  1st Qu.: 9.000  
##  Median : 9.000  
##  Mean   : 9.115  
##  3rd Qu.: 9.000  
##  Max.   :10.000
# Benchmark ---------------------------------------------------------------

rbenchmark::benchmark(base_rng_mtr_xts(metricsRaw_range),
                      base_rng_mtr_xts_no_cbind(metricsRaw_range),
                      tidy_rng_mtr_xts(metricsRaw_range),
                      replications = 1e2)
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
## New names:
## * NA -> ...1
## * NA -> ...2
## * NA -> ...3
## * NA -> ...4
## New names:
## * NA -> ...1
## * ...1 -> ...2
## * ...2 -> ...3
## * ...3 -> ...4
## * ...4 -> ...5
## Warning: Non-numeric columns being dropped: timestamp
## Using column `timestamp` for date_var.
##                                          test replications elapsed relative
## 2 base_rng_mtr_xts_no_cbind(metricsRaw_range)          100   0.040    1.000
## 1          base_rng_mtr_xts(metricsRaw_range)          100   0.043    1.075
## 3          tidy_rng_mtr_xts(metricsRaw_range)          100   0.980   24.500
##   user.self sys.self user.child sys.child
## 2     0.040    0.000          0         0
## 1     0.043    0.000          0         0
## 3     0.975    0.006          0         0