Skip to content

Commit fb8ce20

Browse files
committed
Rename default data sets to the mythical MetroCare Hospital
1 parent 4e466fb commit fb8ce20

File tree

94 files changed

+2108
-433
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+2108
-433
lines changed

NEWS.md

+3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ contain their initial quantitative inputs. These users may also use
5050
Evaluator to new models.
5151

5252
## Other Changes
53+
* Renamed the default sample dataset to the hypothetical MetroCare Hospital.
54+
The default sets now all consistently use the `mc_` prefix to distinguish
55+
them from parameter names.
5356
* Deprecated `load_data()`. Use `read_qualitative_inputs()` or
5457
`read_quantitative_inputs()` as appropriate.
5558
* Re-export the pipe operator `%>%`

R/common_graphs.R

+6-6
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ theme_evaluator <- function(base_family = "BentonSansRE") {
5050
#' @return A ggplot object.
5151
#' @export
5252
#' @examples
53-
#' data(domain_summary)
54-
#' generate_heatmap(domain_summary)
53+
#' data(mc_domain_summary)
54+
#' generate_heatmap(mc_domain_summary)
5555
generate_heatmap <- function(domain_summary) {
5656
dat <- domain_summary %>% dplyr::arrange(.data$domain_id) %>%
5757
dplyr::mutate(full_label = paste0(.data$domain_id, "\n",
@@ -86,8 +86,8 @@ generate_heatmap <- function(domain_summary) {
8686
#' @return A ggplot object.
8787
#' @export
8888
#' @examples
89-
#' data(simulation_results)
90-
#' generate_scatterplot(simulation_results, scenario_id = "50")
89+
#' data(mc_simulation_results)
90+
#' generate_scatterplot(mc_simulation_results, scenario_id = "50")
9191
generate_scatterplot <- function(simulation_results, scenario_id){
9292
all_results <- unnest(simulation_results, .data$results)
9393
dat <- all_results[all_results$scenario_id == scenario_id, ]
@@ -123,8 +123,8 @@ generate_scatterplot <- function(simulation_results, scenario_id){
123123
#' @return ggplot object.
124124
#' @export
125125
#' @examples
126-
#' data(domain_summary)
127-
#' generate_event_outcomes_plot(domain_summary)
126+
#' data(mc_domain_summary)
127+
#' generate_event_outcomes_plot(mc_domain_summary)
128128
generate_event_outcomes_plot <- function(domain_summary, domain_id = domain_id) {
129129
domain_id <- rlang::ensym(domain_id)
130130
all_domains <- domain_summary

R/data.R

+62-21
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
#' Capabilities
22
#'
3-
#' A qualitative dataset of sample capabilities and qualitative level of effectiveness.
3+
#' A sample set of capabilities for the demonstration (and artificial)
4+
#' MetroCare information security program.
5+
#'
6+
#' @source
7+
#' This is hypothetical information. Any similarity to any other
8+
#' entitiy is completely coincidental.
49
#'
510
#' @format
611
#' \describe{
@@ -9,12 +14,16 @@
914
#' \item{capability}{full text summary of the capability}
1015
#' \item{diff}{qualitative label of control effectiveness}
1116
#' }
12-
"capabilities"
17+
"mc_capabilities"
1318

1419
#' Qualitative to quantitative mappings
1520
#'
16-
#' A dataset of sample mappings from qualitative labels to quantitative
17-
#' distribution parameters.
21+
#' A sample set of qualitative to quantitative mappings for the demonstration
22+
#' (and artificial) MetroCare information security program.
23+
#'
24+
#' @source
25+
#' This is hypothetical information. Any similarity to any other
26+
#' entitiy is completely coincidental.
1827
#'
1928
#' @format
2029
#' \describe{
@@ -25,23 +34,33 @@
2534
#' \item{h}{BetaPERT high value}
2635
#' \item{conf}{BetaPERT confidence value}
2736
#' }
28-
"mappings"
37+
"mc_mappings"
2938

3039
#' Domain mappings
3140
#'
32-
#' A dataset of domains and domain IDs.
41+
#' A sample set of the domains for the demonstration (and artificial)
42+
#' MetroCare information security program.
43+
#'
44+
#' @source
45+
#' This is hypothetical information. Any similarity to any other
46+
#' entitiy is completely coincidental.
3347
#'
3448
#' @format
3549
#' \describe{
3650
#' \item{domain_id}{abbreviated name of the domain}
3751
#' \item{domain}{full title of the domain}
3852
#' }
39-
"domains"
53+
"mc_domains"
4054

4155
#' Domain-level risk summary
4256
#'
43-
#' A dataset of quantified information security risk, summarized at the
44-
#' domain level.
57+
#' A sample set of quantified information security risk exposure, summarized
58+
#' at the domain level, for the demonstration (and artificial)
59+
#' MetroCare information security program.
60+
#'
61+
#' @source
62+
#' This is hypothetical information. Any similarity to any other
63+
#' entitiy is completely coincidental.
4564
#'
4665
#' @format
4766
#' \describe{
@@ -62,12 +81,17 @@
6281
#' \item{mean_diff_exceedance}{mean difficulty exceedance}
6382
#' \item{mean_vuln}{mean vulnerability of the scenario}
6483
#' }
65-
"domain_summary"
84+
"mc_domain_summary"
6685

6786
#' Scenario-level risk summary
6887
#'
69-
#' A dataset of quantified information security risk, summarized at the
70-
#' scenario level.
88+
#' A sample set of quantified information security risk exposure, summarized
89+
#' at the scenario level, for the demonstration (and artificial)
90+
#' MetroCare information security program.
91+
#'
92+
#' @source
93+
#' This is hypothetical information. Any similarity to any other
94+
#' entitiy is completely coincidental.
7195
#'
7296
#' @format
7397
#' \describe{
@@ -90,10 +114,17 @@
90114
#' \item{mean_diff_exceedance}{mean difficulty exceedance}
91115
#' \item{mean_vuln}{mean vulnerability of the scenario}
92116
#' }
93-
"scenario_summary"
117+
"mc_scenario_summary"
94118

95119
#' Quantified information risk scenarios
96120
#'
121+
#' A sample set of quantified information security risk scenarios for the
122+
#' demonstration (and artificial) MetroCare information security program.
123+
#'
124+
#' @source
125+
#' This is hypothetical information. Any similarity to any other
126+
#' entitiy is completely coincidental.
127+
#'
97128
#' @format
98129
#' A dataset of quantified risk scenarios, with parameters
99130
#' describing the distribution of each input.
@@ -105,14 +136,19 @@
105136
#' \item{domain_id}{domain id}
106137
#' \item{control_descriptons}{named list of the text description of controls involved}
107138
#' \item{scenario}{\code{\link{tidyrisk_scenario}} objects}
108-
109139
#' }
110-
"quantitative_scenarios"
140+
"mc_quantitative_scenarios"
111141

112142
#' Qualitative information security risk scenarios
113143
#'
114-
#' A dataset of qualitative information security risk scenarios.
144+
#' A sample set of qualitative information security risk scenarios for the
145+
#' demonstration (and artificial) MetroCare information security program.
115146
#'
147+
#' No connection with any other similarly named entity is intended or implied.
148+
#'
149+
#' @source
150+
#' This is hypothetical information. Any similarity to any other
151+
#' entitiy is completely coincidental.
116152
#' @format
117153
#' \describe{
118154
#' \item{scenario_id}{id of the scenario, primary key}
@@ -124,17 +160,22 @@
124160
#' \item{domain_id}{domain id}
125161
#' \item{controls}{comma delimited list of controls ids}
126162
#' }
127-
"qualitative_scenarios"
163+
"mc_qualitative_scenarios"
128164

129-
#' Information security risk simulation results
165+
#' Simulation results
166+
#'
167+
#' A sample set of information security risk scenario simulation results
168+
#' for the demonstration (and artificial) MetroCare information security
169+
#' program.
130170
#'
131-
#' A dataset containing the full results of sample Monte Carlo
132-
#' simulations of information security risk scenarios.
171+
#' @source
172+
#' This is hypothetical information. Any similarity to any other
173+
#' entitiy is completely coincidental.
133174
#'
134175
#' @format
135176
#' \describe{
136177
#' \item{scenario_id}{id of the scenario}
137178
#' \item{domain_id}{domain id}
138179
#' \item{results}{nested data frame of simulation results for the scenario}
139180
#' }
140-
"simulation_results"
181+
"mc_simulation_results"

R/encode.R

+6-6
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
#' @export
1717
#' @return A dataframe of capabilities for the scenario and parameters for quantified simulation.
1818
#' @examples
19-
#' data(qualitative_scenarios, capabilities, mappings)
20-
#' encode_scenarios(qualitative_scenarios, capabilities, mappings)
19+
#' data(mc_qualitative_scenarios, mc_capabilities, mc_mappings)
20+
#' encode_scenarios(mc_qualitative_scenarios, mc_capabilities, mc_mappings)
2121
encode_scenarios <- function(scenarios, capabilities, mappings) {
2222
# fetch DIFF params
2323
scenarios$diff_params <- purrr::map(scenarios$controls,
@@ -85,9 +85,9 @@ encode_scenarios <- function(scenarios, capabilities, mappings) {
8585
#' @return A named list of control IDs and descriptions.
8686
#' @export
8787
#' @examples
88-
#' data(capabilities)
88+
#' data(mc_capabilities)
8989
#' capability_ids <- c("1, 3")
90-
#' derive_control_key(capability_ids, capabilities)
90+
#' derive_control_key(capability_ids, mc_capabilities)
9191
derive_control_key <- function(capability_ids, capabilities) {
9292
control_list <- stringi::stri_split_fixed(capability_ids, ", ") %>% unlist()
9393

@@ -118,11 +118,11 @@ derive_control_key <- function(capability_ids, capabilities) {
118118
#' applicable to a given scenario.
119119
#' @export
120120
#' @examples
121-
#' data(capabilities)
121+
#' data(mc_capabilities)
122122
#' capability_ids <- c("1, 3")
123123
#' mappings <- data.frame(type = "diff", label = "1 - Immature", l = 0, ml = 2, h = 10,
124124
#' conf = 3, stringsAsFactors = FALSE)
125-
#' derive_controls(capability_ids, capabilities, mappings)
125+
#' derive_controls(capability_ids, mc_capabilities, mappings)
126126
derive_controls <- function(capability_ids, capabilities, mappings) {
127127
control_list <- stringi::stri_split_fixed(capability_ids, ", ") %>% unlist()
128128

R/import.R

+10-8
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ import_spreadsheet <- function(survey_file = system.file("survey",
5454
#' @export
5555
#' @return Extracted qualitative scenarios as a dataframe.
5656
#' @examples
57-
#' data(domains)
58-
#' import_scenarios(domains = domains)
57+
#' data(mc_domains)
58+
#' import_scenarios(domains = mc_domains)
5959
import_scenarios <- function(survey_file = NULL, domains = NULL) {
6060

6161
survey_file <- if (is.null(survey_file)) {
@@ -68,8 +68,9 @@ import_scenarios <- function(survey_file = NULL, domains = NULL) {
6868

6969
# use default domains if none supplied
7070
domains <- if (is.null(domains)) {
71-
utils::data(domains, package = "evaluator", envir = environment())
72-
domains
71+
env <- new.env()
72+
utils::data("mc_domains", package = "evaluator", envir = env)
73+
get("mc_domains", envir = env)
7374
} else {domains}
7475

7576
# scenarios begin with the list of domains
@@ -111,8 +112,8 @@ import_scenarios <- function(survey_file = NULL, domains = NULL) {
111112
#' @return Extracted capabilities as a dataframe.
112113
#' @inheritParams import_scenarios
113114
#' @examples
114-
#' data(domains)
115-
#' import_capabilities(domains = domains)
115+
#' data(mc_domains)
116+
#' import_capabilities(domains = mc_domains)
116117
import_capabilities <- function(survey_file = NULL, domains = NULL){
117118

118119
survey_file <- if (is.null(survey_file)) {
@@ -125,8 +126,9 @@ import_capabilities <- function(survey_file = NULL, domains = NULL){
125126

126127
# use default domains if none supplied
127128
domains <- if (is.null(domains)) {
128-
utils::data(domains, package = "evaluator", envir = environment())
129-
domains
129+
env <- new.env()
130+
utils::data("mc_domains", package = "evaluator", envir = env)
131+
get("mc_domains", env)
130132
} else {domains}
131133

132134
raw_domains <- domains %>%

R/load_data.R

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#' Create a directory structure for risk analysis, prepopulate with templates
1+
#' Create a directory structure for risk analysis, pre-populated with templates
22
#'
33
#' Copy the sample files into an `inputs` subdirectory. This makes the starter
44
#' files available for customizing and data collection. The `inputs`

R/openfair.R

+2-2
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,8 @@ select_loss_opportunities <- function(tc, diff, n = NULL, ...) {
281281
#' @family OpenFAIR helpers
282282
#' @export
283283
#' @examples
284-
#' data(quantitative_scenarios)
285-
#' params <- quantitative_scenarios[[1, "scenario"]]$parameters
284+
#' data(mc_quantitative_scenarios)
285+
#' params <- mc_quantitative_scenarios[[1, "scenario"]]$parameters
286286
#' openfair_tef_tc_diff_lm(params$tef, params$tc, params$diff, params$lm, 10)
287287
openfair_tef_tc_diff_lm <- function(tef, tc, diff, lm, n = 10^4, verbose = FALSE) {
288288

R/simulate.R

+6-6
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
#' @export
1717
#' @return Dataframe of results.
1818
#' @examples
19-
#' data(quantitative_scenarios)
20-
#' run_simulation(quantitative_scenarios[[1, "scenario"]], 10)
19+
#' data(mc_quantitative_scenarios)
20+
#' run_simulation(mc_quantitative_scenarios[[1, "scenario"]], 10)
2121
run_simulation <- function(scenario, iterations = 10000L,
2222
ale_maximum = NULL,
2323
verbose = FALSE, simulation_count = NULL) {
@@ -84,10 +84,10 @@ run_simulation <- function(scenario, iterations = 10000L,
8484
#' @export
8585
#' @examples
8686
#' # fetch three scenarios for this example
87-
#' data(quantitative_scenarios)
88-
#' scenario_a <- quantitative_scenarios[[1, "scenario"]]
89-
#' scenario_b <- quantitative_scenarios[[2, "scenario"]]
90-
#' scenario_c <- quantitative_scenarios[[3, "scenario"]]
87+
#' data(mc_quantitative_scenarios)
88+
#' scenario_a <- mc_quantitative_scenarios[[1, "scenario"]]
89+
#' scenario_b <- mc_quantitative_scenarios[[2, "scenario"]]
90+
#' scenario_c <- mc_quantitative_scenarios[[3, "scenario"]]
9191
#' run_simulations(scenario_a, scenario_b, scenario_c, iterations = 10)
9292
#'
9393
run_simulations <- function(scenario, ..., iterations = 10000L,

R/summarize.R

+10-11
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
#' @export
2121
#' @return Dataframe of summary statistics.
2222
#' @examples
23-
#' data(simulation_results)
23+
#' data(mc_simulation_results)
2424
#' # summarize a single scenario
25-
#' summarize_scenario(simulation_results[[1, "results"]])
25+
#' summarize_scenario(mc_simulation_results[[1, "results"]])
2626
#'
2727
summarize_scenario <- function(simulation_results) {
2828
scenario_summary <- simulation_results %>%
@@ -60,8 +60,8 @@ summarize_scenario <- function(simulation_results) {
6060
#' @rdname summarize_scenario
6161
#' @examples
6262
#' # summarize all scenarios in a data frame
63-
#' data(simulation_results)
64-
#' summarize_scenarios(simulation_results)
63+
#' data(mc_simulation_results)
64+
#' summarize_scenarios(mc_simulation_results)
6565
summarize_scenarios <- function(simulation_results) {
6666
dplyr::mutate(simulation_results, summary = purrr::map(.data$results, summarize_scenario)) %>%
6767
tidyr::unnest(summary)
@@ -91,8 +91,8 @@ summarize_scenarios <- function(simulation_results) {
9191
#' @export
9292
#' @return Dataframe.
9393
#' @examples
94-
#' data(simulation_results)
95-
#' summarize_iterations(simulation_results$results)
94+
#' data(mc_simulation_results)
95+
#' summarize_iterations(mc_simulation_results$results)
9696
summarize_iterations <- function(simulation_results, ..., .key = "iteration") {
9797

9898
key <- rlang::ensym(.key)
@@ -144,8 +144,8 @@ summarize_iterations <- function(simulation_results, ..., .key = "iteration") {
144144
#' @return Simulation results summarized across domains.
145145
#' @examples
146146
#' \dontrun{
147-
#' data(simulation_results)
148-
#' summarize_domains(simulation_results)
147+
#' data(mc_simulation_results)
148+
#' summarize_domains(mc_simulation_results)
149149
#' }
150150
summarize_domains <- function(simulation_results, domain_variable = "domain_id") {
151151
domain_variable <- rlang::ensym(domain_variable)
@@ -194,9 +194,8 @@ summarize_domains <- function(simulation_results, domain_variable = "domain_id")
194194
#' @return Tibble with paths to the created data files.
195195
#' @examples
196196
#' \dontrun{
197-
#' data(simulation_results)
198-
#' data(domains)
199-
#' summarize_to_disk(simulation_results)
197+
#' data(mc_simulation_results)
198+
#' summarize_to_disk(mc_simulation_results)
200199
#' }
201200
summarize_to_disk <- function(simulation_results, results_dir = "~/results") {
202201
if (!dir.exists(results_dir)) dir.create(results_dir)

0 commit comments

Comments
 (0)