The table below utilizes {tableboom} functionality to tell the story about the war and about the code.
There is also a tutorial in the form of vignette about some aspects of metaprogramming used during developing the package: Treating Code As Data - Notes.
children_from_ukr_temp_prot_eu.R | |
1 |
library(dplyr) |
≀ ⊳ library(dplyr) | |
3 4 |
path <- file.path(system.file(package = "tableboom","table_contest_2022", "inner_script"), "eurostat_data.R") |
≀ file.path(system.file(... ≀ ⊳ system.file(package = "tableboom", "table_contest_2022", "inner_script") chr "C:/Users/gsmolinski/Documents/R/R-4.2.1/library/tableboom/table_contest_2022/inner_script" ⊳ file.path(system.file( package = "tableboom", "table_contest_2022", "inner_script" ), "eurostat_data.R") chr "C:/Users/gsmolinski/Documents/R/R-4.2.1/library/tableboom/table_contest_2022/inner_script/eurostat_data.R" | |
6 |
source(path) # data - children (< 18) from Ukraine which found temp protection |
≀ ⊳ source(path) | |
8 9 |
names(child_ukr_prot) <- c("country", "march_2022", "april_2022", "may_2022","june_2022", "july_2022", "august_2022") |
≀ ⊳ c( "country", "march_2022", "april_2022", "may_2022", "june_2022", "july_2022", "august_2022" ) chr [1:7] "country" "march_2022" "april_2022" "may_2022" "june_2022" ... | |
11 12 |
child_ukr_prot[5, "country"] <- stringi::stri_replace_all_regex(child_ukr_prot[5, "country"], "\\s+.+", "") |
≀ stringi::stri_replace_all_regex(... ≀ ⊳ child_ukr_prot[5, "country"] chr "Germany (until 1990 former territory of the FRG)" ⊳ stringi::stri_replace_all_regex( child_ukr_prot[5, "country"], "\\s+.+", "" ) chr "Germany" | |
14 15 16 |
child_ukr_prot <- child_ukr_prot |> mutate(across(matches("\\d$"), \(e) if_else(e == ":", NA_character_, e)), across(matches("\\d$"), as.integer)) |
≀ mutate(child_ukr_prot, across(matches("\\d$"), function(e) {... ≀ function(e) if_else(e == ":", NA_character_, e) ⊳ function(e) if_else(e == ":", NA_character_, e) function (e) - attr(*, "srcref")= 'srcref' int [1:8] 15 34 15 73 34 73 15 15 - attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x00000189fc0b9f60> ≀ if_else(e == ":", NA_character_, e) ≀ ⊳ e == ":" logi [1:31] FALSE FALSE FALSE FALSE TRUE FALSE ... ⊳ if_else(e == ":", NA_character_, e) chr [1:31] "10155" "12685" "96740" "475" NA "6165" NA "0" "12975" NA ... ≀ if_else(e == ":", NA_character_, e) ≀ ⊳ e == ":" logi [1:31] FALSE FALSE TRUE FALSE TRUE FALSE ... ⊳ if_else(e == ":", NA_character_, e) chr [1:31] "3925" "24555" NA "3685" NA "3630" NA "3075" "18505" NA "2135" ... ≀ if_else(e == ":", NA_character_, e) ≀ ⊳ e == ":" logi [1:31] FALSE FALSE TRUE FALSE TRUE FALSE ... ⊳ if_else(e == ":", NA_character_, e) chr [1:31] "2190" "7175" NA "3845" NA "1005" NA "1870" "10810" NA "830" ... ≀ if_else(e == ":", NA_character_, e) ≀ ⊳ e == ":" logi [1:31] FALSE FALSE TRUE FALSE TRUE FALSE ... ⊳ if_else(e == ":", NA_character_, e) chr [1:31] "1165" "1790" NA "1530" NA "620" NA "490" "3435" NA "455" ... ≀ if_else(e == ":", NA_character_, e) ≀ ⊳ e == ":" logi [1:31] FALSE FALSE TRUE FALSE TRUE FALSE ... ⊳ if_else(e == ":", NA_character_, e) chr [1:31] "860" "1850" NA "435" NA "740" NA "265" "1660" NA "395" "3870" ... ≀ if_else(e == ":", NA_character_, e) ≀ ⊳ e == ":" logi [1:31] FALSE FALSE TRUE FALSE FALSE FALSE ... ⊳ if_else(e == ":", NA_character_, e) chr [1:31] "795" "1030" NA "460" "18545" "775" "0" "230" "1615" NA "225" ... ⊳ mutate(child_ukr_prot, across(matches("\\d$"), function(e) { if_else(e == ":", NA_character_, e) }), across(matches("\\d$"), as.integer)) Rows: 31 Columns: 7 $ country <chr> "Belgium", "Bulgaria", "Czechia", "Denmark", "Germany", "E… $ march_2022 <int> 10155, 12685, 96740, 475, NA, 6165, NA, 0, 12975, NA, 1875… $ april_2022 <int> 3925, 24555, NA, 3685, NA, 3630, NA, 3075, 18505, NA, 2135… $ may_2022 <int> 2190, 7175, NA, 3845, NA, 1005, NA, 1870, 10810, NA, 830, … $ june_2022 <int> 1165, 1790, NA, 1530, NA, 620, NA, 490, 3435, NA, 455, 964… $ july_2022 <int> 860, 1850, NA, 435, NA, 740, NA, 265, 1660, NA, 395, 3870,… $ august_2022 <int> 795, 1030, NA, 460, 18545, 775, 0, 230, 1615, NA, 225, NA,… | |
18 |
maxs <- vector("integer", ncol(child_ukr_prot) - 1) |
≀ vector("integer", ncol(child_ukr_prot) - 1) ≀ ncol(child_ukr_prot) - 1 ≀ ⊳ ncol(child_ukr_prot) int 7 ⊳ ncol(child_ukr_prot) - 1 num 6 ⊳ vector("integer", ncol(child_ukr_prot) - 1) int [1:6] 0 0 0 0 0 0 | |
20 21 22 |
for (i in 2:(ncol(child_ukr_prot))) { maxs[[i - 1]] <- max(child_ukr_prot[[i]], na.rm = TRUE) } |
≀ 2:(ncol(child_ukr_prot)) ≀ ⊳ ncol(child_ukr_prot) int 7 ⊳ 2:(ncol(child_ukr_prot)) int [1:6] 2 3 4 5 6 7 ≀ max(child_ukr_prot[[i]], na.rm = TRUE) ≀ ⊳ child_ukr_prot[[i]] int [1:31] 10155 12685 96740 475 NA 6165 NA 0 12975 NA ... ⊳ max(child_ukr_prot[[i]], na.rm = TRUE) int 361565 ≀ ⊳ i - 1 num 1 ≀ max(child_ukr_prot[[i]], na.rm = TRUE) ≀ ⊳ child_ukr_prot[[i]] int [1:31] 3925 24555 NA 3685 NA 3630 NA 3075 18505 NA ... ⊳ max(child_ukr_prot[[i]], na.rm = TRUE) int 189630 ≀ ⊳ i - 1 num 2 ≀ max(child_ukr_prot[[i]], na.rm = TRUE) ≀ ⊳ child_ukr_prot[[i]] int [1:31] 2190 7175 NA 3845 NA 1005 NA 1870 10810 NA ... ⊳ max(child_ukr_prot[[i]], na.rm = TRUE) int 30170 ≀ ⊳ i - 1 num 3 ≀ max(child_ukr_prot[[i]], na.rm = TRUE) ≀ ⊳ child_ukr_prot[[i]] int [1:31] 1165 1790 NA 1530 NA 620 NA 490 3435 NA ... ⊳ max(child_ukr_prot[[i]], na.rm = TRUE) int 15445 ≀ ⊳ i - 1 num 4 ≀ max(child_ukr_prot[[i]], na.rm = TRUE) ≀ ⊳ child_ukr_prot[[i]] int [1:31] 860 1850 NA 435 NA 740 NA 265 1660 NA ... ⊳ max(child_ukr_prot[[i]], na.rm = TRUE) int 15615 ≀ ⊳ i - 1 num 5 ≀ max(child_ukr_prot[[i]], na.rm = TRUE) ≀ ⊳ child_ukr_prot[[i]] int [1:31] 795 1030 NA 460 18545 775 0 230 1615 NA ... ⊳ max(child_ukr_prot[[i]], na.rm = TRUE) int 19120 ≀ ⊳ i - 1 num 6 | |
24 |
maxs |
int [1:6] 361565 189630 30170 15445 15615 19120 | |
26 |
total_months <- colSums(child_ukr_prot[, 2:ncol(child_ukr_prot)], na.rm = TRUE) |
≀ colSums(child_ukr_prot[, 2:ncol(child_ukr_prot)], na.rm = TRUE) ≀ child_ukr_prot[, 2:ncol(child_ukr_prot)] ≀ 2:ncol(child_ukr_prot) ≀ ⊳ ncol(child_ukr_prot) int 7 ⊳ 2:ncol(child_ukr_prot) int [1:6] 2 3 4 5 6 7 ⊳ child_ukr_prot[, 2:ncol(child_ukr_prot)] Rows: 31 Columns: 6 $ march_2022 <int> 10155, 12685, 96740, 475, NA, 6165, NA, 0, 12975, NA, 1875… $ april_2022 <int> 3925, 24555, NA, 3685, NA, 3630, NA, 3075, 18505, NA, 2135… $ may_2022 <int> 2190, 7175, NA, 3845, NA, 1005, NA, 1870, 10810, NA, 830, … $ june_2022 <int> 1165, 1790, NA, 1530, NA, 620, NA, 490, 3435, NA, 455, 964… $ july_2022 <int> 860, 1850, NA, 435, NA, 740, NA, 265, 1660, NA, 395, 3870,… $ august_2022 <int> 795, 1030, NA, 460, 18545, 775, 0, 230, 1615, NA, 225, NA,… ⊳ colSums(child_ukr_prot[, 2:ncol(child_ukr_prot)], na.rm = TRUE) Named num [1:6] 579495 325955 103950 47280 34600 ... - attr(*, "names")= chr [1:6] "march_2022" "april_2022" "may_2022" "june_2022" ... | |
28 |
format(sum(total_months), big.mark = " ") |
≀ format(sum(total_months), big.mark = " ") ≀ ⊳ sum(total_months) num 1144425 ⊳ format(sum(total_months), big.mark = " ") chr "1 144 425" | |
30 |
path() |
≀ ⊳ path() Error: simpleError/error/condition | |
children_from_ukr_temp_prot_eu.R |
# install.packages("devtools")
# devtools::install_github("gsmolinski/tableboom")
<- system.file(package = "tableboom", "table_contest_2022")
dir_path
<- file.path(dir_path, "children_from_ukr_temp_prot_eu.R")
script_to_inspect
::inspect_r(script_to_inspect, id = "tableboom") tableboom
library(dplyr)
path <- file.path(system.file(package = "tableboom","table_contest_2022", "inner_script"),
"eurostat_data.R")
# Unfortunately, comments in separate lines are not included
source(path) # data - children (< 18) from Ukraine which found temp protection
names(child_ukr_prot) <- c("country", "march_2022", "april_2022",
"may_2022","june_2022", "july_2022", "august_2022")
child_ukr_prot[5, "country"] <- stringi::stri_replace_all_regex(child_ukr_prot[5, "country"],
"\\s+.+", "")
child_ukr_prot <- child_ukr_prot |>
mutate(across(matches("\\d$"), \(e) if_else(e == ":", NA_character_, e)),
across(matches("\\d$"), as.integer))
maxs <- vector("integer", ncol(child_ukr_prot) - 1)
for (i in 2:(ncol(child_ukr_prot))) {
maxs[[i - 1]] <- max(child_ukr_prot[[i]], na.rm = TRUE)
}
maxs
total_months <- colSums(child_ukr_prot[, 2:ncol(child_ukr_prot)], na.rm = TRUE)
format(sum(total_months), big.mark = " ")
path()