The search path records attached packages, but package workflows are clearer when important calls are written with explicit namespaces.

Program

Play the script to choose a package and build the qualified call that avoids search-path ambiguity.

search_path_plan.R
search_path <- c("package:stats", "package:graphics", "package:utils")
package_index <- 
chosen <- c("stats", "graphics", "utils")[package_index]
functions <- c(stats = "median", graphics = "plot", utils = "head")
qualified <- paste0(chosen, "::", functions[[chosen]])
already_attached <- paste0("package:", chosen) %in% search_path
label <- paste(qualified, already_attached, sep = "=")
cat(label, "\n", sep = "")
search_path <- c("package:stats", "package:graphics", "package:utils")
package_index <- 
chosen <- c("stats", "graphics", "utils")[package_index]
functions <- c(stats = "median", graphics = "plot", utils = "head")
qualified <- paste0(chosen, "::", functions[[chosen]])
already_attached <- paste0("package:", chosen) %in% search_path
label <- paste(qualified, already_attached, sep = "=")
cat(label, "\n", sep = "")
search_path <- c("package:stats", "package:graphics", "package:utils")
package_index <- 
chosen <- c("stats", "graphics", "utils")[package_index]
functions <- c(stats = "median", graphics = "plot", utils = "head")
qualified <- paste0(chosen, "::", functions[[chosen]])
already_attached <- paste0("package:", chosen) %in% search_path
label <- paste(qualified, already_attached, sep = "=")
cat(label, "\n", sep = "")
search path `search()` reports attached packages; this example models that list as data.
namespace `qualified` stores a package-qualified function name.
membership `%in%` checks whether the chosen package is attached.