Optional Ecosystem Survey
Package Role Map
Match Tools to Jobs
An ecosystem survey starts by mapping optional packages to the job they usually support.
Program
Play the script to choose a role and see the package label stay explicit.
package_role_map.R
Replay: real traced execution (multi-file project)
role_index <- 2
roles <- c("import", "visualize", "model")
packages <- c("readr", "ggplot2", "tidymodels")
role <- roles[role_index]
package <- packages[role_index]
label <- paste(role, package, sep = ":")
cat(label, "\n", sep = "")
role_index <- 1
roles <- c("import", "visualize", "model")
packages <- c("readr", "ggplot2", "tidymodels")
role <- roles[role_index]
package <- packages[role_index]
label <- paste(role, package, sep = ":")
cat(label, "\n", sep = "")
role_index <- 3
roles <- c("import", "visualize", "model")
packages <- c("readr", "ggplot2", "tidymodels")
role <- roles[role_index]
package <- packages[role_index]
label <- paste(role, package, sep = ":")
cat(label, "\n", sep = "")
role_index ← 2
1role_index <- 22roles <- c("import", "visualize", "model")values this step2role_indexroles ← import, visualize, model
1role_index <- 22roles <- c("import", "visualize", "model")3packages <- c("readr", "ggplot2", "tidymodels")values this stepimport, visualize, modelrolespackages ← readr, ggplot2, tidymodels
2roles <- c("import", "visualize", "model")3packages <- c("readr", "ggplot2", "tidymodels")4role <- roles[role_index]values this stepreadr, ggplot2, tidymodelspackagesrole ← visualize
3packages <- c("readr", "ggplot2", "tidymodels")4role <- roles[role_index]5package <- packages[role_index]values this stepvisualizerole2role_indexpackage ← ggplot2
4role <- roles[role_index]5package <- packages[role_index]6label <- paste(role, package, sep = ":")values this stepggplot2package2role_indexreadr, ggplot2, tidymodelspackageslabel ← visualize:ggplot2
5package <- packages[role_index]6label <- paste(role, package, sep = ":")7cat(label, "\n", sep = "")values this stepvisualize:ggplot2labelvisualizeroleggplot2packagecat(label, " ", sep = "")
6label <- paste(role, package, sep = ":")7cat(label, "\n", sep = "")outputvisualize:ggplot2values this stepvisualize:ggplot2label
role_index ← 1
1role_index <- 12roles <- c("import", "visualize", "model")values this step1role_indexroles ← import, visualize, model
1role_index <- 12roles <- c("import", "visualize", "model")3packages <- c("readr", "ggplot2", "tidymodels")values this stepimport, visualize, modelrolespackages ← readr, ggplot2, tidymodels
2roles <- c("import", "visualize", "model")3packages <- c("readr", "ggplot2", "tidymodels")4role <- roles[role_index]values this stepreadr, ggplot2, tidymodelspackagesrole ← import
3packages <- c("readr", "ggplot2", "tidymodels")4role <- roles[role_index]5package <- packages[role_index]values this stepimportrole1role_indexpackage ← readr
4role <- roles[role_index]5package <- packages[role_index]6label <- paste(role, package, sep = ":")values this stepreadrpackage1role_indexreadr, ggplot2, tidymodelspackageslabel ← import:readr
5package <- packages[role_index]6label <- paste(role, package, sep = ":")7cat(label, "\n", sep = "")values this stepimport:readrlabelimportrolereadrpackagecat(label, " ", sep = "")
6label <- paste(role, package, sep = ":")7cat(label, "\n", sep = "")outputimport:readrvalues this stepimport:readrlabel
role_index ← 3
1role_index <- 32roles <- c("import", "visualize", "model")values this step3role_indexroles ← import, visualize, model
1role_index <- 32roles <- c("import", "visualize", "model")3packages <- c("readr", "ggplot2", "tidymodels")values this stepimport, visualize, modelrolespackages ← readr, ggplot2, tidymodels
2roles <- c("import", "visualize", "model")3packages <- c("readr", "ggplot2", "tidymodels")4role <- roles[role_index]values this stepreadr, ggplot2, tidymodelspackagesrole ← model
3packages <- c("readr", "ggplot2", "tidymodels")4role <- roles[role_index]5package <- packages[role_index]values this stepmodelrole3role_indexpackage ← tidymodels
4role <- roles[role_index]5package <- packages[role_index]6label <- paste(role, package, sep = ":")values this steptidymodelspackage3role_indexreadr, ggplot2, tidymodelspackageslabel ← model:tidymodels
5package <- packages[role_index]6label <- paste(role, package, sep = ":")7cat(label, "\n", sep = "")values this stepmodel:tidymodelslabelmodelroletidymodelspackagecat(label, " ", sep = "")
6label <- paste(role, package, sep = ":")7cat(label, "\n", sep = "")outputmodel:tidymodelsvalues this stepmodel:tidymodelslabel
ecosystem role
A role describes the problem area before choosing a package.
optional package
Package names are treated as labels here; nothing is installed or loaded.
mapping
Parallel vectors keep each role paired with one example package.