Reports often turn computed values into small tables with stable labels and rounded display values.

Program

Play the script to change the number of shown digits and watch the table labels update.

digits
summary_table.R
Replay: real traced execution (multi-file project)
metric <- c("accuracy", "recall", "precision")
value <- c(0.9234, 0.8751, 0.9012)
digits <- 2
shown <- round(value, digits)
rows <- paste(metric, shown, sep = "=")
label <- paste(rows, collapse = ";")
cat(label, "\n", sep = "")
metric <- c("accuracy", "recall", "precision")
value <- c(0.9234, 0.8751, 0.9012)
digits <- 1
shown <- round(value, digits)
rows <- paste(metric, shown, sep = "=")
label <- paste(rows, collapse = ";")
cat(label, "\n", sep = "")
metric <- c("accuracy", "recall", "precision")
value <- c(0.9234, 0.8751, 0.9012)
digits <- 3
shown <- round(value, digits)
rows <- paste(metric, shown, sep = "=")
label <- paste(rows, collapse = ";")
cat(label, "\n", sep = "")
  1. metric ← accuracy, recall, precision

    1metric <- c("accuracy", "recall", "precision")2value <- c(0.9234, 0.8751, 0.9012)
    values this stepaccuracy, recall, precisionmetric
  2. value ← 0.9234, 0.8751, 0.9012

    1metric <- c("accuracy", "recall", "precision")2value <- c(0.9234, 0.8751, 0.9012)3digits <- 2
    values this step0.9234, 0.8751, 0.9012value
  3. digits ← 2

    2value <- c(0.9234, 0.8751, 0.9012)3digits <- 24shown <- round(value, digits)
    values this step2digits
  4. shown ← 0.92, 0.88, 0.90

    3digits <- 24shown <- round(value, digits)5rows <- paste(metric, shown, sep = "=")
    values this step0.92, 0.88, 0.90shown3 metricsvalue2digits
  5. rows ← accuracy=0.92, recall=0.88, precision=0.9

    4shown <- round(value, digits)5rows <- paste(metric, shown, sep = "=")6label <- paste(rows, collapse = ";")
    values this stepaccuracy=0.92, recall=0.88, precision=0.9rows3 namesmetric3 rounded valuesshown
  6. label ← accuracy=0.92;recall=0.88;precision=0.9

    5rows <- paste(metric, shown, sep = "=")6label <- paste(rows, collapse = ";")7cat(label, "\n", sep = "")
    values this stepaccuracy=0.92;recall=0.88;precision=0.9label3 report rowsrows
  7. cat(label, " ", sep = "")

    6label <- paste(rows, collapse = ";")7cat(label, "\n", sep = "")
    outputaccuracy=0.92;recall=0.88;precision=0.9
    values this stepaccuracy=0.92;recall=0.88;precision=0.9label
  1. metric ← accuracy, recall, precision

    1metric <- c("accuracy", "recall", "precision")2value <- c(0.9234, 0.8751, 0.9012)
    values this stepaccuracy, recall, precisionmetric
  2. value ← 0.9234, 0.8751, 0.9012

    1metric <- c("accuracy", "recall", "precision")2value <- c(0.9234, 0.8751, 0.9012)3digits <- 1
    values this step0.9234, 0.8751, 0.9012value
  3. digits ← 1

    2value <- c(0.9234, 0.8751, 0.9012)3digits <- 14shown <- round(value, digits)
    values this step1digits
  4. shown ← 0.9, 0.9, 0.9

    3digits <- 14shown <- round(value, digits)5rows <- paste(metric, shown, sep = "=")
    values this step0.9, 0.9, 0.9shown3 metricsvalue1digits
  5. rows ← accuracy=0.9, recall=0.9, precision=0.9

    4shown <- round(value, digits)5rows <- paste(metric, shown, sep = "=")6label <- paste(rows, collapse = ";")
    values this stepaccuracy=0.9, recall=0.9, precision=0.9rows3 namesmetric3 rounded valuesshown
  6. label ← accuracy=0.9;recall=0.9;precision=0.9

    5rows <- paste(metric, shown, sep = "=")6label <- paste(rows, collapse = ";")7cat(label, "\n", sep = "")
    values this stepaccuracy=0.9;recall=0.9;precision=0.9label3 report rowsrows
  7. cat(label, " ", sep = "")

    6label <- paste(rows, collapse = ";")7cat(label, "\n", sep = "")
    outputaccuracy=0.9;recall=0.9;precision=0.9
    values this stepaccuracy=0.9;recall=0.9;precision=0.9label
  1. metric ← accuracy, recall, precision

    1metric <- c("accuracy", "recall", "precision")2value <- c(0.9234, 0.8751, 0.9012)
    values this stepaccuracy, recall, precisionmetric
  2. value ← 0.9234, 0.8751, 0.9012

    1metric <- c("accuracy", "recall", "precision")2value <- c(0.9234, 0.8751, 0.9012)3digits <- 3
    values this step0.9234, 0.8751, 0.9012value
  3. digits ← 3

    2value <- c(0.9234, 0.8751, 0.9012)3digits <- 34shown <- round(value, digits)
    values this step3digits
  4. shown ← 0.923, 0.875, 0.901

    3digits <- 34shown <- round(value, digits)5rows <- paste(metric, shown, sep = "=")
    values this step0.923, 0.875, 0.901shown3 metricsvalue3digits
  5. rows ← accuracy=0.923, recall=0.875, precision=0.901

    4shown <- round(value, digits)5rows <- paste(metric, shown, sep = "=")6label <- paste(rows, collapse = ";")
    values this stepaccuracy=0.923, recall=0.875, precision=0.901rows3 namesmetric3 rounded valuesshown
  6. label ← accuracy=0.923;recall=0.875;precision=0.901

    5rows <- paste(metric, shown, sep = "=")6label <- paste(rows, collapse = ";")7cat(label, "\n", sep = "")
    values this stepaccuracy=0.923;recall=0.875;precision=0.901label3 report rowsrows
  7. cat(label, " ", sep = "")

    6label <- paste(rows, collapse = ";")7cat(label, "\n", sep = "")
    outputaccuracy=0.923;recall=0.875;precision=0.901
    values this stepaccuracy=0.923;recall=0.875;precision=0.901label
round `round(value, digits)` prepares numeric values for display.
row label `paste(metric, shown, sep = "=")` builds compact table rows.
collapse `paste(rows, collapse = ";")` turns rows into a report-ready line.