The ahle_sr function from here https://github.com/stephen-wh-kwok/testing/blob/main/ahle_sr.R is broken down to demonstrate the result of each step. The arguments in ahle_sr now are set as objects in the global environment. For the definition of arguments pls refer to the .Rd earlier.
file: the directory of the Excel file
sheet: which sheet
par_names: name of the column which contains names of the parameters
ignore: which column(s) to ignore
nruns: number of runs (number of samplings)
Num_months: number of months
baseline_scen: which scenario to run as a baseline scenario. If NULL, all scenarios will be run.
control_scen: which scenario should be run as a control (comparison) scenario. One only. If NULL, no control scenario is specified.
ill_month: which month(s) in Num_months should run the control scenario, otherwise the baseline scenario will be used.
# ahle_sr <- function(
file="D:/Users/SK/Documents/gbad/AHLE scenario parameters-20221202.xlsx";
file
## [1] "D:/Users/SK/Documents/gbad/AHLE scenario parameters-20221202.xlsx"
sheet = 1;
sheet
## [1] 1
par_names = "AHLE Parameter";
par_names
## [1] "AHLE Parameter"
ignore = "Notes";
ignore
## [1] "Notes"
nruns = 1;
nruns
## [1] 1
Num_months = 1;
Num_months
## [1] 1
baseline_scen = "CLM_S_Current";
baseline_scen
## [1] "CLM_S_Current"
control_scen = NULL;
control_scen
## NULL
ill_month = NULL
ill_month
## NULL
# ){
if (!require("pacman")) install.packages("pacman")
## Loading required package: pacman
## Warning: package 'pacman' was built under R version 4.3.1
pacman::p_load("tidyverse", "readxl", "freedom", "truncnorm","data.table", "doParallel", "abind")
https://www.rdocumentation.org/packages/parallel/versions/3.6.2/topics/makeCluster
cl = (detectCores() *.94) %>% floor %>% makeCluster
cl
## socket cluster with 120 nodes on host 'localhost'
https://www.rdocumentation.org/packages/doParallel/versions/1.0.17/topics/registerDoParallel
registerDoParallel(cl)
age = c("N", "J", "A");
age
## [1] "N" "J" "A"
sex = c("F", "M");
sex
## [1] "F" "M"
cats = c(age, sex)
cats
## [1] "N" "J" "A" "F" "M"
https://tidyr.tidyverse.org/reference/expand_grid.html
.g = expand_grid(age,sex)
.g
## # A tibble: 6 × 2
## age sex
## <chr> <chr>
## 1 N F
## 2 N M
## 3 J F
## 4 J M
## 5 A F
## 6 A M
.t = paste0(.g$age,.g$sex)
.t
## [1] "NF" "NM" "JF" "JM" "AF" "AM"
These labels will be the object names of the populations by age-sex.
.p = paste0(".", .t) %>% as.list
.p
## [[1]]
## [1] ".NF"
##
## [[2]]
## [1] ".NM"
##
## [[3]]
## [1] ".JF"
##
## [[4]]
## [1] ".JM"
##
## [[5]]
## [1] ".AF"
##
## [[6]]
## [1] ".AM"
Create a list of lists of binary values to indicate whether an age-sex category satisfies a condition. The six age-sex categories are in the .t object. The conditions are in the cats objects.
.l = map(cats, function(x) map(.t, function(y) grepl(x, y) %>% sum))
.l
## [[1]]
## [[1]][[1]]
## [1] 1
##
## [[1]][[2]]
## [1] 1
##
## [[1]][[3]]
## [1] 0
##
## [[1]][[4]]
## [1] 0
##
## [[1]][[5]]
## [1] 0
##
## [[1]][[6]]
## [1] 0
##
##
## [[2]]
## [[2]][[1]]
## [1] 0
##
## [[2]][[2]]
## [1] 0
##
## [[2]][[3]]
## [1] 1
##
## [[2]][[4]]
## [1] 1
##
## [[2]][[5]]
## [1] 0
##
## [[2]][[6]]
## [1] 0
##
##
## [[3]]
## [[3]][[1]]
## [1] 0
##
## [[3]][[2]]
## [1] 0
##
## [[3]][[3]]
## [1] 0
##
## [[3]][[4]]
## [1] 0
##
## [[3]][[5]]
## [1] 1
##
## [[3]][[6]]
## [1] 1
##
##
## [[4]]
## [[4]][[1]]
## [1] 1
##
## [[4]][[2]]
## [1] 0
##
## [[4]][[3]]
## [1] 1
##
## [[4]][[4]]
## [1] 0
##
## [[4]][[5]]
## [1] 1
##
## [[4]][[6]]
## [1] 0
##
##
## [[5]]
## [[5]][[1]]
## [1] 0
##
## [[5]][[2]]
## [1] 1
##
## [[5]][[3]]
## [1] 0
##
## [[5]][[4]]
## [1] 1
##
## [[5]][[5]]
## [1] 0
##
## [[5]][[6]]
## [1] 1
Each list in the list of lists is given a name to indicate which condition was tested. n, j, a, f, m are neonates, juveniles, adults, females, males, respectively.
names(.l) <- cats %>% tolower %>% paste0(".", .)
.l
## $.n
## $.n[[1]]
## [1] 1
##
## $.n[[2]]
## [1] 1
##
## $.n[[3]]
## [1] 0
##
## $.n[[4]]
## [1] 0
##
## $.n[[5]]
## [1] 0
##
## $.n[[6]]
## [1] 0
##
##
## $.j
## $.j[[1]]
## [1] 0
##
## $.j[[2]]
## [1] 0
##
## $.j[[3]]
## [1] 1
##
## $.j[[4]]
## [1] 1
##
## $.j[[5]]
## [1] 0
##
## $.j[[6]]
## [1] 0
##
##
## $.a
## $.a[[1]]
## [1] 0
##
## $.a[[2]]
## [1] 0
##
## $.a[[3]]
## [1] 0
##
## $.a[[4]]
## [1] 0
##
## $.a[[5]]
## [1] 1
##
## $.a[[6]]
## [1] 1
##
##
## $.f
## $.f[[1]]
## [1] 1
##
## $.f[[2]]
## [1] 0
##
## $.f[[3]]
## [1] 1
##
## $.f[[4]]
## [1] 0
##
## $.f[[5]]
## [1] 1
##
## $.f[[6]]
## [1] 0
##
##
## $.m
## $.m[[1]]
## [1] 0
##
## $.m[[2]]
## [1] 1
##
## $.m[[3]]
## [1] 0
##
## $.m[[4]]
## [1] 1
##
## $.m[[5]]
## [1] 0
##
## $.m[[6]]
## [1] 1
data = read_excel(file, sheet)
#head(data)
str(data)
## tibble [119 × 242] (S3: tbl_df/tbl/data.frame)
## $ AHLE Parameter : chr [1:119] "Num_months" "# Initial population" "N_NF_t0" "N_NM_t0" ...
## $ Notes : chr [1:119] NA NA "# Neonatal female" "# Neonatal male" ...
## $ CLM_S_Current : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_Ideal : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_all_mortality_zero : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_all_mort_25_imp : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_all_mort_50_imp : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_all_mort_75_imp : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mortality_zero_N : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mortality_zero_J : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mortality_zero_AF : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mortality_zero_AM : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_25_imp_N : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_50_imp_N : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_75_imp_N : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_25_imp_J : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_50_imp_J : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_75_imp_J : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_25_imp_AF : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_50_imp_AF : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_75_imp_AF : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_25_imp_AM : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_50_imp_AM : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_mort_75_imp_AM : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_ideal_NF : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_ideal_NM : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_ideal_JF : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_ideal_JM : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_ideal_AF : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_S_ideal_AM : chr [1:119] "12" NA "2070822" "2070822" ...
## $ CLM_G_Current : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_Ideal : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_all_mortality_zero : chr [1:119] "12" NA "2803178" "10864998" ...
## $ CLM_G_all_mort_25_imp : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_all_mort_50_imp : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_all_mort_75_imp : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mortality_zero_N : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mortality_zero_J : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mortality_zero_AF : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mortality_zero_AM : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_25_imp_N : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_50_imp_N : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_75_imp_N : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_25_imp_J : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_50_imp_J : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_75_imp_J : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_25_imp_AF : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_50_imp_AF : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_75_imp_AF : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_25_imp_AM : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_50_imp_AM : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_mort_75_imp_AM : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_ideal_NF : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_ideal_NM : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_ideal_JF : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_ideal_JM : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_ideal_AF : chr [1:119] "12" NA "2803178" "2586971" ...
## $ CLM_G_ideal_AM : chr [1:119] "12" NA "2803178" "2586971" ...
## $ Past_S_Current : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_Ideal : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_all_mortality_zero : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_all_mort_25_imp : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_all_mort_50_imp : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_all_mort_75_imp : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mortality_zero_N : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mortality_zero_J : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mortality_zero_AF : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mortality_zero_AM : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_25_imp_N : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_50_imp_N : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_75_imp_N : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_25_imp_J : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_50_imp_J : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_75_imp_J : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_25_imp_AF : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_50_imp_AF : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_75_imp_AF : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_25_imp_AM : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_50_imp_AM : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_mort_75_imp_AM : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_ideal_NF : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_ideal_NM : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_ideal_JF : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_ideal_JM : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_ideal_AF : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_S_ideal_AM : chr [1:119] "12" NA "1805806" "1212609" ...
## $ Past_G_Current : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_Ideal : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_all_mortality_zero : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_all_mort_25_imp : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_all_mort_50_imp : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_all_mort_75_imp : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_mortality_zero_N : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_mortality_zero_J : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_mortality_zero_AF : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_mortality_zero_AM : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_mort_25_imp_N : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_mort_50_imp_N : chr [1:119] "12" NA "2931658" "1974212" ...
## $ Past_G_mort_75_imp_N : chr [1:119] "12" NA "2931658" "1974212" ...
## [list output truncated]
If baseline_scen = NULL, all scenario names will form a character vector and overwrite this argument. Otherwise, it is unchanged.
if(is.null(baseline_scen)){
baseline_scen = names(data) %>% . [ !. %in% c(par_names, ignore)]
} else baseline_scen = baseline_scen
baseline_scen
## [1] "CLM_S_Current"
In https://github.com/stephen-wh-kwok/testing/blob/main/ahle_sr.R the f_scen function was created to allow NULL as an input for scen argument, which is applicable when control_scen = NULL. In the current exercise, new objects will be created without a function as baseline_scen and control_scen are fixed.
# f_scen = function(scen){
#
# if(is.null(scen)) {
#
#
# par = NULL
#
#
# } else {
#
# par =
Select the column containing names of “production parameters” and the column of the scenario.
b_scen = select(data, all_of(c(par_names, baseline_scen))) #%>%
#b_scen %>% head
b_scen %>% str
## tibble [119 × 2] (S3: tbl_df/tbl/data.frame)
## $ AHLE Parameter: chr [1:119] "Num_months" "# Initial population" "N_NF_t0" "N_NM_t0" ...
## $ CLM_S_Current : chr [1:119] "12" NA "2070822" "2070822" ...
b_scen = transpose(b_scen, make.names = par_names) #%>%
#b_scen %>% head
b_scen %>% str
## 'data.frame': 1 obs. of 119 variables:
## $ Num_months : chr "12"
## $ # Initial population : chr NA
## $ N_NF_t0 : chr "2070822"
## $ N_NM_t0 : chr "2070822"
## $ N_JF_t0 : chr "1915971"
## $ N_JM_t0 : chr "1147386"
## $ N_AF_t0 : chr "14049629"
## $ N_AM_t0 : chr "3048715"
## $ NA : chr NA
## $ ## Growth rate N -> J and J-> A : chr NA
## $ Beta : chr "0.16666666666666666"
## $ NA : chr NA
## $ # Fertility : chr NA
## $ part : chr "rpert(10000, 0.52, 0.67, 0.60)"
## $ prolif : chr "rtruncnorm(10000, 0, 3, 1.3, 0.15)"
## $ NA : chr NA
## $ # lactation : chr NA
## $ prop_F_milked : chr "0"
## $ lac_duration : chr "0"
## $ avg_daily_yield_ltr : chr "0"
## $ milk_value_ltr : chr "0"
## $ NA : chr NA
## $ # Offtake : chr NA
## $ ## Currently fixed, but, should this be dependant on new pop size, to keep pop size as it was at t0: chr NA
## $ ## offtake must = offtake + dif between NNFt0 etc and NJF current : chr NA
## $ GammaF : chr "3.3333333333333335E-3"
## $ GammaM : chr "4.5000000000000005E-2"
## $ NA : chr NA
## $ # Mortality ## informed from META analysis : chr NA
## $ AlphaN : chr "rpert(1000, 0.09/6, 0.49/6, 0.2/6)"
## $ AlphaJ : chr "rpert(1000, 0.03/6, 0.30/6, 0.07/6)"
## $ AlphaF : chr "rpert(1000, 0.02/12, 0.13/12, 0.05/12)"
## $ AlphaM : chr "rpert(1000, 0.02/12, 0.17/12, 0.06/12)"
## $ NA : chr NA
## $ # Culls : chr NA
## $ CullF : chr "9.2592592592592587E-3"
## $ CullM : chr "2.0833333333333332E-2"
## $ NA : chr NA
## $ ## Production parameters (kg) : chr NA
## $ NA : chr NA
## $ # Liveweight conversion (kg) ## Informed from META analysis : chr NA
## $ lwNF : chr "rtruncnorm(10000, a = 1, b = 15, mean = 11.7, sd = 2.2)"
## $ lwNM : chr "rtruncnorm(10000, a = 1, b = 15, mean =11.7, sd = 2.2)"
## $ lwJF : chr "rnorm(10000, 21.1, sd = 3.8)"
## $ lwJM : chr "rnorm(10000, 21.1, sd = 3.8)"
## $ lwAF : chr "rnorm(10000, 28.6, sd = 4.1)"
## $ lwAM : chr "rnorm(10000, 31.5, sd = 6.8)"
## $ NA : chr NA
## $ # carcase yeild : chr NA
## $ ccy : chr "0.42"
## $ NA : chr NA
## $ ## Financial value of live animals : chr NA
## $ # Ethiopian Birr : chr NA
## $ fvNF : chr "rpert(10000, 839, 1676, 1385)"
## $ fvJF : chr "rpert(10000, 1246, 4300, 2120)"
## $ fvAF : chr "rpert(10000, 2400, 4013, 2890)"
## $ fvNM : chr "rpert(10000, 839, 1676, 1385)"
## $ fvJM : chr "rpert(10000, 1246, 5949, 2541)"
## $ fvAM : chr "rpert(10000, 2341, 8413, 4036)"
## $ NA : chr NA
## $ ## Off take which go for fertility in females (used when calculating hide numbers) : chr NA
## $ #fert_offtake : chr "0.25"
## $ NA : chr NA
## $ ## skin/hides : chr NA
## $ ## parameters can be updated through expert opinion but adding options for flexibility here : chr NA
## $ hides_rate : chr "1"
## $ hides_rate_mor : chr "0.5"
## $ NA : chr NA
## $ # 1 usd per piece = 51 eth birr : chr NA
## $ hides_value : chr "40"
## $ NA : chr NA
## $ # manure rate (kg produced/animal/day) : chr NA
## $ Man_N : chr "0.1"
## $ Man_J : chr "0.2"
## $ Man_A : chr "0.3"
## $ NA : chr NA
## $ # 0.0125 USD / kg = 0.65 eth birr per kg 2021 price : chr NA
## $ Man_value : chr "0.5"
## $ NA : chr NA
## $ ## dry matter requirements as proportion of liveweight : chr NA
## $ DM_req_prpn_NF : chr "2.5999999999999999E-2"
## $ DM_req_prpn_NM : chr "2.5999999999999999E-2"
## $ DM_req_prpn_JF : chr "2.5999999999999999E-2"
## $ DM_req_prpn_JM : chr "2.5999999999999999E-2"
## $ DM_req_prpn_AF : chr "2.5999999999999999E-2"
## $ DM_req_prpn_AM : chr "2.5999999999999999E-2"
## $ NA : chr NA
## $ ## Proportion of livestock keepers that spend any money on feed : chr NA
## $ ## NOTE Currently the same for all age*sex groups : chr NA
## $ prpn_lskeepers_purch_feed : chr "0.25"
## $ NA : chr NA
## $ ## For those spending any money on feed, the proportion of feed that is purchased : chr NA
## $ ## NOTE Currently the same for all age*sex groups : chr NA
## $ prpn_feed_paid_for : chr "0.5"
## $ NA : chr NA
## $ ## Input parameters ## just example distributions for now : chr NA
## $ Feed_cost_kg : chr "rpert(10000, 2.5, 6.5, 3.46)"
## $ NA : chr NA
## $ ## variable results for the amount of dry matter in wheat and barley and tef in Ethiopia : chr NA
## [list output truncated]
b_scen = b_scen [ , (colSums(is.na(b_scen))/nrow(b_scen)) < .5] #%>%
#b_scen %>% head
b_scen %>% str
## 'data.frame': 1 obs. of 58 variables:
## $ Num_months : chr "12"
## $ N_NF_t0 : chr "2070822"
## $ N_NM_t0 : chr "2070822"
## $ N_JF_t0 : chr "1915971"
## $ N_JM_t0 : chr "1147386"
## $ N_AF_t0 : chr "14049629"
## $ N_AM_t0 : chr "3048715"
## $ Beta : chr "0.16666666666666666"
## $ part : chr "rpert(10000, 0.52, 0.67, 0.60)"
## $ prolif : chr "rtruncnorm(10000, 0, 3, 1.3, 0.15)"
## $ prop_F_milked : chr "0"
## $ lac_duration : chr "0"
## $ avg_daily_yield_ltr : chr "0"
## $ milk_value_ltr : chr "0"
## $ GammaF : chr "3.3333333333333335E-3"
## $ GammaM : chr "4.5000000000000005E-2"
## $ AlphaN : chr "rpert(1000, 0.09/6, 0.49/6, 0.2/6)"
## $ AlphaJ : chr "rpert(1000, 0.03/6, 0.30/6, 0.07/6)"
## $ AlphaF : chr "rpert(1000, 0.02/12, 0.13/12, 0.05/12)"
## $ AlphaM : chr "rpert(1000, 0.02/12, 0.17/12, 0.06/12)"
## $ CullF : chr "9.2592592592592587E-3"
## $ CullM : chr "2.0833333333333332E-2"
## $ lwNF : chr "rtruncnorm(10000, a = 1, b = 15, mean = 11.7, sd = 2.2)"
## $ lwNM : chr "rtruncnorm(10000, a = 1, b = 15, mean =11.7, sd = 2.2)"
## $ lwJF : chr "rnorm(10000, 21.1, sd = 3.8)"
## $ lwJM : chr "rnorm(10000, 21.1, sd = 3.8)"
## $ lwAF : chr "rnorm(10000, 28.6, sd = 4.1)"
## $ lwAM : chr "rnorm(10000, 31.5, sd = 6.8)"
## $ ccy : chr "0.42"
## $ fvNF : chr "rpert(10000, 839, 1676, 1385)"
## $ fvJF : chr "rpert(10000, 1246, 4300, 2120)"
## $ fvAF : chr "rpert(10000, 2400, 4013, 2890)"
## $ fvNM : chr "rpert(10000, 839, 1676, 1385)"
## $ fvJM : chr "rpert(10000, 1246, 5949, 2541)"
## $ fvAM : chr "rpert(10000, 2341, 8413, 4036)"
## $ #fert_offtake : chr "0.25"
## $ hides_rate : chr "1"
## $ hides_rate_mor : chr "0.5"
## $ hides_value : chr "40"
## $ Man_N : chr "0.1"
## $ Man_J : chr "0.2"
## $ Man_A : chr "0.3"
## $ Man_value : chr "0.5"
## $ DM_req_prpn_NF : chr "2.5999999999999999E-2"
## $ DM_req_prpn_NM : chr "2.5999999999999999E-2"
## $ DM_req_prpn_JF : chr "2.5999999999999999E-2"
## $ DM_req_prpn_JM : chr "2.5999999999999999E-2"
## $ DM_req_prpn_AF : chr "2.5999999999999999E-2"
## $ DM_req_prpn_AM : chr "2.5999999999999999E-2"
## $ prpn_lskeepers_purch_feed: chr "0.25"
## $ prpn_feed_paid_for : chr "0.5"
## $ Feed_cost_kg : chr "rpert(10000, 2.5, 6.5, 3.46)"
## $ DM_in_feed : chr "rpert(10000, 0.85, 0.95, 0.9)"
## $ Lab_SR : chr "rpert(10000, (260/12), (649/12), (368/12))"
## $ lab_non_health : chr "1"
## $ Health_exp : chr "runif(10000, (2.2/12), (2.8/12))"
## $ Interest_rate : chr "0"
## $ Infrastructure_per_head : chr "1"
This is useful when more than one scenario will run.
b_scen = split( b_scen , seq(nrow(b_scen)) ) #%>%
#b_scen %>% head
b_scen %>% str
## List of 1
## $ 1:'data.frame': 1 obs. of 58 variables:
## ..$ Num_months : chr "12"
## ..$ N_NF_t0 : chr "2070822"
## ..$ N_NM_t0 : chr "2070822"
## ..$ N_JF_t0 : chr "1915971"
## ..$ N_JM_t0 : chr "1147386"
## ..$ N_AF_t0 : chr "14049629"
## ..$ N_AM_t0 : chr "3048715"
## ..$ Beta : chr "0.16666666666666666"
## ..$ part : chr "rpert(10000, 0.52, 0.67, 0.60)"
## ..$ prolif : chr "rtruncnorm(10000, 0, 3, 1.3, 0.15)"
## ..$ prop_F_milked : chr "0"
## ..$ lac_duration : chr "0"
## ..$ avg_daily_yield_ltr : chr "0"
## ..$ milk_value_ltr : chr "0"
## ..$ GammaF : chr "3.3333333333333335E-3"
## ..$ GammaM : chr "4.5000000000000005E-2"
## ..$ AlphaN : chr "rpert(1000, 0.09/6, 0.49/6, 0.2/6)"
## ..$ AlphaJ : chr "rpert(1000, 0.03/6, 0.30/6, 0.07/6)"
## ..$ AlphaF : chr "rpert(1000, 0.02/12, 0.13/12, 0.05/12)"
## ..$ AlphaM : chr "rpert(1000, 0.02/12, 0.17/12, 0.06/12)"
## ..$ CullF : chr "9.2592592592592587E-3"
## ..$ CullM : chr "2.0833333333333332E-2"
## ..$ lwNF : chr "rtruncnorm(10000, a = 1, b = 15, mean = 11.7, sd = 2.2)"
## ..$ lwNM : chr "rtruncnorm(10000, a = 1, b = 15, mean =11.7, sd = 2.2)"
## ..$ lwJF : chr "rnorm(10000, 21.1, sd = 3.8)"
## ..$ lwJM : chr "rnorm(10000, 21.1, sd = 3.8)"
## ..$ lwAF : chr "rnorm(10000, 28.6, sd = 4.1)"
## ..$ lwAM : chr "rnorm(10000, 31.5, sd = 6.8)"
## ..$ ccy : chr "0.42"
## ..$ fvNF : chr "rpert(10000, 839, 1676, 1385)"
## ..$ fvJF : chr "rpert(10000, 1246, 4300, 2120)"
## ..$ fvAF : chr "rpert(10000, 2400, 4013, 2890)"
## ..$ fvNM : chr "rpert(10000, 839, 1676, 1385)"
## ..$ fvJM : chr "rpert(10000, 1246, 5949, 2541)"
## ..$ fvAM : chr "rpert(10000, 2341, 8413, 4036)"
## ..$ #fert_offtake : chr "0.25"
## ..$ hides_rate : chr "1"
## ..$ hides_rate_mor : chr "0.5"
## ..$ hides_value : chr "40"
## ..$ Man_N : chr "0.1"
## ..$ Man_J : chr "0.2"
## ..$ Man_A : chr "0.3"
## ..$ Man_value : chr "0.5"
## ..$ DM_req_prpn_NF : chr "2.5999999999999999E-2"
## ..$ DM_req_prpn_NM : chr "2.5999999999999999E-2"
## ..$ DM_req_prpn_JF : chr "2.5999999999999999E-2"
## ..$ DM_req_prpn_JM : chr "2.5999999999999999E-2"
## ..$ DM_req_prpn_AF : chr "2.5999999999999999E-2"
## ..$ DM_req_prpn_AM : chr "2.5999999999999999E-2"
## ..$ prpn_lskeepers_purch_feed: chr "0.25"
## ..$ prpn_feed_paid_for : chr "0.5"
## ..$ Feed_cost_kg : chr "rpert(10000, 2.5, 6.5, 3.46)"
## ..$ DM_in_feed : chr "rpert(10000, 0.85, 0.95, 0.9)"
## ..$ Lab_SR : chr "rpert(10000, (260/12), (649/12), (368/12))"
## ..$ lab_non_health : chr "1"
## ..$ Health_exp : chr "runif(10000, (2.2/12), (2.8/12))"
## ..$ Interest_rate : chr "0"
## ..$ Infrastructure_per_head : chr "1"
The character inputs are parsed and evaluated. Function to sample distribution will return numerical vector.
b_scen = map(b_scen , ~ map(.x, ~ eval(parse(text = .x)))) #%>%
b_scen %>% str
## List of 1
## $ 1:List of 58
## ..$ Num_months : num 12
## ..$ N_NF_t0 : num 2070822
## ..$ N_NM_t0 : num 2070822
## ..$ N_JF_t0 : num 1915971
## ..$ N_JM_t0 : num 1147386
## ..$ N_AF_t0 : num 1.4e+07
## ..$ N_AM_t0 : num 3048715
## ..$ Beta : num 0.167
## ..$ part : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ prolif : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ prop_F_milked : num 0
## ..$ lac_duration : num 0
## ..$ avg_daily_yield_ltr : num 0
## ..$ milk_value_ltr : num 0
## ..$ GammaF : num 0.00333
## ..$ GammaM : num 0.045
## ..$ AlphaN : num [1:1000] 0.0567 0.0266 0.0287 0.0287 0.0289 ...
## ..$ AlphaJ : num [1:1000] 0.0164 0.02767 0.01952 0.01655 0.00798 ...
## ..$ AlphaF : num [1:1000] 0.00535 0.00339 0.00451 0.00479 0.00271 ...
## ..$ AlphaM : num [1:1000] 0.0041 0.00641 0.00644 0.00506 0.0052 ...
## ..$ CullF : num 0.00926
## ..$ CullM : num 0.0208
## ..$ lwNF : num [1:10000] 11.8 11.1 13 12.4 11.1 ...
## ..$ lwNM : num [1:10000] 8.33 14.3 11.69 9.84 13.75 ...
## ..$ lwJF : num [1:10000] 22 19.7 11.8 25.7 25 ...
## ..$ lwJM : num [1:10000] 26.7 23.7 25.2 25.6 20.8 ...
## ..$ lwAF : num [1:10000] 25.2 32.1 27.9 26.1 27.9 ...
## ..$ lwAM : num [1:10000] 47.3 32.2 29.9 30.7 24.5 ...
## ..$ ccy : num 0.42
## ..$ fvNF : num [1:10000] 1117 1362 1345 1287 1576 ...
## ..$ fvJF : num [1:10000] 1628 2813 2565 2888 2344 ...
## ..$ fvAF : num [1:10000] 2878 2615 2718 3177 2751 ...
## ..$ fvNM : num [1:10000] 980 1464 1278 1565 1465 ...
## ..$ fvJM : num [1:10000] 2981 3969 2957 2433 2438 ...
## ..$ fvAM : num [1:10000] 4272 3908 2849 5042 5737 ...
## ..$ #fert_offtake : num 0.25
## ..$ hides_rate : num 1
## ..$ hides_rate_mor : num 0.5
## ..$ hides_value : num 40
## ..$ Man_N : num 0.1
## ..$ Man_J : num 0.2
## ..$ Man_A : num 0.3
## ..$ Man_value : num 0.5
## ..$ DM_req_prpn_NF : num 0.026
## ..$ DM_req_prpn_NM : num 0.026
## ..$ DM_req_prpn_JF : num 0.026
## ..$ DM_req_prpn_JM : num 0.026
## ..$ DM_req_prpn_AF : num 0.026
## ..$ DM_req_prpn_AM : num 0.026
## ..$ prpn_lskeepers_purch_feed: num 0.25
## ..$ prpn_feed_paid_for : num 0.5
## ..$ Feed_cost_kg : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ DM_in_feed : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ Lab_SR : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ lab_non_health : num 1
## ..$ Health_exp : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ Interest_rate : num 0
## ..$ Infrastructure_per_head : num 1
generate a list of lists of “production parameters” for age -sex categories. “production parameter” which will not vary are repeated across categories. Names (.p) are given to the corresponding age -sex populations in the respective list (N0). For details of the labels of the “production parameters” pls refer to https://github.com/GBADsInformatics/GBADsLiverpool/blob/main/Ethiopia%20Workspace/Code%20and%20Control%20Files/AHLE%20scenario%20parameters%20SMALLRUMINANTS.xlsx
b_scen = map(
b_scen ,
function(x, name){
attach(x)
N0 = list(N_NF_t0, N_NM_t0, N_JF_t0, N_JM_t0, N_AF_t0, N_AM_t0)
names(N0) <- name
par = list(
g = Beta,
pt = part,
pf = prolif,
pfm = prop_F_milked,
ld = lac_duration,
ady = avg_daily_yield_ltr,
mvl = milk_value_ltr,
o = list(GammaF, GammaM) %>% rep( 3 ),
d = list(AlphaN, AlphaN, AlphaJ, AlphaJ, AlphaF, AlphaM),
c = list(CullF, CullM) %>% rep( 3 ),
lw = list(lwNF, lwNM, lwJF, lwJM,lwAF,lwAM),
ccy = ccy,
fv = list(fvNF, fvNM, fvJF, fvJM, fvAF, fvAM),
hr = hides_rate,
hrm = hides_rate_mor,
hv = hides_value,
m = list( Man_N, Man_J, Man_A) %>% rep( each = 2),
mv = Man_value,
dm = list(DM_req_prpn_NF, DM_req_prpn_NM, DM_req_prpn_JF, DM_req_prpn_JM, DM_req_prpn_AF, DM_req_prpn_AM),
plp = prpn_lskeepers_purch_feed,
pfp = prpn_feed_paid_for,
fc = Feed_cost_kg,
dif = DM_in_feed,
lsr = Lab_SR,
lnh = lab_non_health,
he = Health_exp,
ir = Interest_rate,
iph = Infrastructure_per_head
)
detach(x)
par %>% map( ~ {
if( is.list(.x) ) .x = .x else .x = list(.x) %>% rep(6)
}
) %>% c(list(N0 = N0), .)
} ,
.p
)
## The following object is masked _by_ .GlobalEnv:
##
## Num_months
#b_scen %>% head
b_scen %>% str
## List of 1
## $ 1:List of 29
## ..$ N0 :List of 6
## .. ..$ .NF: num 2070822
## .. ..$ .NM: num 2070822
## .. ..$ .JF: num 1915971
## .. ..$ .JM: num 1147386
## .. ..$ .AF: num 1.4e+07
## .. ..$ .AM: num 3048715
## ..$ g :List of 6
## .. ..$ : num 0.167
## .. ..$ : num 0.167
## .. ..$ : num 0.167
## .. ..$ : num 0.167
## .. ..$ : num 0.167
## .. ..$ : num 0.167
## ..$ pt :List of 6
## .. ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## .. ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## .. ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## .. ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## .. ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## .. ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ pf :List of 6
## .. ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## .. ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## .. ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## .. ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## .. ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## .. ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ pfm:List of 6
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## ..$ ld :List of 6
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## ..$ ady:List of 6
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## ..$ mvl:List of 6
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## ..$ o :List of 6
## .. ..$ : num 0.00333
## .. ..$ : num 0.045
## .. ..$ : num 0.00333
## .. ..$ : num 0.045
## .. ..$ : num 0.00333
## .. ..$ : num 0.045
## ..$ d :List of 6
## .. ..$ : num [1:1000] 0.0567 0.0266 0.0287 0.0287 0.0289 ...
## .. ..$ : num [1:1000] 0.0567 0.0266 0.0287 0.0287 0.0289 ...
## .. ..$ : num [1:1000] 0.0164 0.02767 0.01952 0.01655 0.00798 ...
## .. ..$ : num [1:1000] 0.0164 0.02767 0.01952 0.01655 0.00798 ...
## .. ..$ : num [1:1000] 0.00535 0.00339 0.00451 0.00479 0.00271 ...
## .. ..$ : num [1:1000] 0.0041 0.00641 0.00644 0.00506 0.0052 ...
## ..$ c :List of 6
## .. ..$ : num 0.00926
## .. ..$ : num 0.0208
## .. ..$ : num 0.00926
## .. ..$ : num 0.0208
## .. ..$ : num 0.00926
## .. ..$ : num 0.0208
## ..$ lw :List of 6
## .. ..$ : num [1:10000] 11.8 11.1 13 12.4 11.1 ...
## .. ..$ : num [1:10000] 8.33 14.3 11.69 9.84 13.75 ...
## .. ..$ : num [1:10000] 22 19.7 11.8 25.7 25 ...
## .. ..$ : num [1:10000] 26.7 23.7 25.2 25.6 20.8 ...
## .. ..$ : num [1:10000] 25.2 32.1 27.9 26.1 27.9 ...
## .. ..$ : num [1:10000] 47.3 32.2 29.9 30.7 24.5 ...
## ..$ ccy:List of 6
## .. ..$ : num 0.42
## .. ..$ : num 0.42
## .. ..$ : num 0.42
## .. ..$ : num 0.42
## .. ..$ : num 0.42
## .. ..$ : num 0.42
## ..$ fv :List of 6
## .. ..$ : num [1:10000] 1117 1362 1345 1287 1576 ...
## .. ..$ : num [1:10000] 980 1464 1278 1565 1465 ...
## .. ..$ : num [1:10000] 1628 2813 2565 2888 2344 ...
## .. ..$ : num [1:10000] 2981 3969 2957 2433 2438 ...
## .. ..$ : num [1:10000] 2878 2615 2718 3177 2751 ...
## .. ..$ : num [1:10000] 4272 3908 2849 5042 5737 ...
## ..$ hr :List of 6
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## ..$ hrm:List of 6
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## ..$ hv :List of 6
## .. ..$ : num 40
## .. ..$ : num 40
## .. ..$ : num 40
## .. ..$ : num 40
## .. ..$ : num 40
## .. ..$ : num 40
## ..$ m :List of 6
## .. ..$ : num 0.1
## .. ..$ : num 0.1
## .. ..$ : num 0.2
## .. ..$ : num 0.2
## .. ..$ : num 0.3
## .. ..$ : num 0.3
## ..$ mv :List of 6
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## ..$ dm :List of 6
## .. ..$ : num 0.026
## .. ..$ : num 0.026
## .. ..$ : num 0.026
## .. ..$ : num 0.026
## .. ..$ : num 0.026
## .. ..$ : num 0.026
## ..$ plp:List of 6
## .. ..$ : num 0.25
## .. ..$ : num 0.25
## .. ..$ : num 0.25
## .. ..$ : num 0.25
## .. ..$ : num 0.25
## .. ..$ : num 0.25
## ..$ pfp:List of 6
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## .. ..$ : num 0.5
## ..$ fc :List of 6
## .. ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## .. ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## .. ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## .. ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## .. ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## .. ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ dif:List of 6
## .. ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## .. ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## .. ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## .. ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## .. ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## .. ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ lsr:List of 6
## .. ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## .. ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## .. ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## .. ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## .. ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## .. ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ lnh:List of 6
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## ..$ he :List of 6
## .. ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## .. ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## .. ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## .. ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## .. ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## .. ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ ir :List of 6
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## .. ..$ : num 0
## ..$ iph:List of 6
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
## .. ..$ : num 1
#};
#par
#}
# b_scen = f_scen(baseline_scen)
c_scen =NULL in this exercise. But it can be another comparison scenario and will be handled similar to b_scen in https://github.com/stephen-wh-kwok/testing/blob/main/ahle_sr.R
c_scen = NULL # f_scen(control_scen)
c_scen
## NULL
A f_par function was created in https://github.com/stephen-wh-kwok/testing/blob/main/ahle_sr.R to allow b_scen to be a list of more than one element. In this exercise, the new objects are created without using a function as b_scen is a single list (of lists).
# f_par = function(
# b_scen, c_scen, age, sex, cats, .g, .t, .p, .l, data,
# file, sheet, par_names, ignore, nruns, Num_months, baseline_scen, control_scen, ill_month
# ){
Set a seed number. In this exercise nruns = 1 as an example. In https://github.com/stephen-wh-kwok/testing/blob/main/ahle_sr.R if nruns > 1, the procedures will be run in parallel computing.
# out = foreach(
seed = 1 :nruns #) %dopar% {
seed
## [1] 1
require(tidyverse)
pop <- list()
pop
## list()
pop[[1]] <- b_scen[[1]]$N0
pop
## [[1]]
## [[1]]$.NF
## [1] 2070822
##
## [[1]]$.NM
## [1] 2070822
##
## [[1]]$.JF
## [1] 1915971
##
## [[1]]$.JM
## [1] 1147386
##
## [[1]]$.AF
## [1] 14049629
##
## [[1]]$.AM
## [1] 3048715
In https://github.com/stephen-wh-kwok/testing/blob/main/ahle_sr.R Num_months should be set in the argument, and in the for loop the “production parameters” will be computed for each month. In this exercise, a for loop is not used as the first month is the only time step.
# for(
i = 1:Num_months
i
## [1] 1
#){
Create a vector of populations by age-sex of the “previous stage”.
attach(pop[[i]])
pre = list(.AF, .AF, .NF, .NM, .JF, .JM)
pre
## [[1]]
## [1] 14049629
##
## [[2]]
## [1] 14049629
##
## [[3]]
## [1] 2070822
##
## [[4]]
## [1] 2070822
##
## [[5]]
## [1] 1915971
##
## [[6]]
## [1] 1147386
Create a vector of populations by age-sex of the stage of concern. e.g., if AF times a certain “production parameter” will give NF. NF times another “production parameter” will give JF.
post = list(.NF, .NM, .JF, .JM, .AF, .AM)
post
## [[1]]
## [1] 2070822
##
## [[2]]
## [1] 2070822
##
## [[3]]
## [1] 1915971
##
## [[4]]
## [1] 1147386
##
## [[5]]
## [1] 14049629
##
## [[6]]
## [1] 3048715
detach(pop[[i]])
b_scen will be used for month 1.
if(i %in% ill_month) p = c_scen else p = b_scen[[1]]
#head(p)
str(p)
## List of 29
## $ N0 :List of 6
## ..$ .NF: num 2070822
## ..$ .NM: num 2070822
## ..$ .JF: num 1915971
## ..$ .JM: num 1147386
## ..$ .AF: num 1.4e+07
## ..$ .AM: num 3048715
## $ g :List of 6
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## $ pt :List of 6
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## $ pf :List of 6
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## $ pfm:List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ ld :List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ ady:List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ mvl:List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ o :List of 6
## ..$ : num 0.00333
## ..$ : num 0.045
## ..$ : num 0.00333
## ..$ : num 0.045
## ..$ : num 0.00333
## ..$ : num 0.045
## $ d :List of 6
## ..$ : num [1:1000] 0.0567 0.0266 0.0287 0.0287 0.0289 ...
## ..$ : num [1:1000] 0.0567 0.0266 0.0287 0.0287 0.0289 ...
## ..$ : num [1:1000] 0.0164 0.02767 0.01952 0.01655 0.00798 ...
## ..$ : num [1:1000] 0.0164 0.02767 0.01952 0.01655 0.00798 ...
## ..$ : num [1:1000] 0.00535 0.00339 0.00451 0.00479 0.00271 ...
## ..$ : num [1:1000] 0.0041 0.00641 0.00644 0.00506 0.0052 ...
## $ c :List of 6
## ..$ : num 0.00926
## ..$ : num 0.0208
## ..$ : num 0.00926
## ..$ : num 0.0208
## ..$ : num 0.00926
## ..$ : num 0.0208
## $ lw :List of 6
## ..$ : num [1:10000] 11.8 11.1 13 12.4 11.1 ...
## ..$ : num [1:10000] 8.33 14.3 11.69 9.84 13.75 ...
## ..$ : num [1:10000] 22 19.7 11.8 25.7 25 ...
## ..$ : num [1:10000] 26.7 23.7 25.2 25.6 20.8 ...
## ..$ : num [1:10000] 25.2 32.1 27.9 26.1 27.9 ...
## ..$ : num [1:10000] 47.3 32.2 29.9 30.7 24.5 ...
## $ ccy:List of 6
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## $ fv :List of 6
## ..$ : num [1:10000] 1117 1362 1345 1287 1576 ...
## ..$ : num [1:10000] 980 1464 1278 1565 1465 ...
## ..$ : num [1:10000] 1628 2813 2565 2888 2344 ...
## ..$ : num [1:10000] 2981 3969 2957 2433 2438 ...
## ..$ : num [1:10000] 2878 2615 2718 3177 2751 ...
## ..$ : num [1:10000] 4272 3908 2849 5042 5737 ...
## $ hr :List of 6
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## $ hrm:List of 6
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## $ hv :List of 6
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## $ m :List of 6
## ..$ : num 0.1
## ..$ : num 0.1
## ..$ : num 0.2
## ..$ : num 0.2
## ..$ : num 0.3
## ..$ : num 0.3
## $ mv :List of 6
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## $ dm :List of 6
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## $ plp:List of 6
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## $ pfp:List of 6
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## $ fc :List of 6
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## $ dif:List of 6
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## $ lsr:List of 6
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## $ lnh:List of 6
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## $ he :List of 6
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## $ ir :List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ iph:List of 6
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
concatenate the population vectors, age-sex category labels, lists of binary tests of age-sex conditions, and the b_scen (which contains lists of “production parameters” by age-sex categories).
list_of_lists= list(pre = pre,
post = post,
.t = .t,
.p = .p ) %>% c(., .l, p)
#list_of_lists %>% head
list_of_lists %>% str
## List of 38
## $ pre :List of 6
## ..$ : num 1.4e+07
## ..$ : num 1.4e+07
## ..$ : num 2070822
## ..$ : num 2070822
## ..$ : num 1915971
## ..$ : num 1147386
## $ post:List of 6
## ..$ : num 2070822
## ..$ : num 2070822
## ..$ : num 1915971
## ..$ : num 1147386
## ..$ : num 1.4e+07
## ..$ : num 3048715
## $ .t : chr [1:6] "NF" "NM" "JF" "JM" ...
## $ .p :List of 6
## ..$ : chr ".NF"
## ..$ : chr ".NM"
## ..$ : chr ".JF"
## ..$ : chr ".JM"
## ..$ : chr ".AF"
## ..$ : chr ".AM"
## $ .n :List of 6
## ..$ : int 1
## ..$ : int 1
## ..$ : int 0
## ..$ : int 0
## ..$ : int 0
## ..$ : int 0
## $ .j :List of 6
## ..$ : int 0
## ..$ : int 0
## ..$ : int 1
## ..$ : int 1
## ..$ : int 0
## ..$ : int 0
## $ .a :List of 6
## ..$ : int 0
## ..$ : int 0
## ..$ : int 0
## ..$ : int 0
## ..$ : int 1
## ..$ : int 1
## $ .f :List of 6
## ..$ : int 1
## ..$ : int 0
## ..$ : int 1
## ..$ : int 0
## ..$ : int 1
## ..$ : int 0
## $ .m :List of 6
## ..$ : int 0
## ..$ : int 1
## ..$ : int 0
## ..$ : int 1
## ..$ : int 0
## ..$ : int 1
## $ N0 :List of 6
## ..$ .NF: num 2070822
## ..$ .NM: num 2070822
## ..$ .JF: num 1915971
## ..$ .JM: num 1147386
## ..$ .AF: num 1.4e+07
## ..$ .AM: num 3048715
## $ g :List of 6
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## ..$ : num 0.167
## $ pt :List of 6
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## ..$ : num [1:10000] 0.608 0.596 0.582 0.574 0.617 ...
## $ pf :List of 6
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## ..$ : num [1:10000] 1.39 1 1.15 1.25 1.13 ...
## $ pfm :List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ ld :List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ ady :List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ mvl :List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ o :List of 6
## ..$ : num 0.00333
## ..$ : num 0.045
## ..$ : num 0.00333
## ..$ : num 0.045
## ..$ : num 0.00333
## ..$ : num 0.045
## $ d :List of 6
## ..$ : num [1:1000] 0.0567 0.0266 0.0287 0.0287 0.0289 ...
## ..$ : num [1:1000] 0.0567 0.0266 0.0287 0.0287 0.0289 ...
## ..$ : num [1:1000] 0.0164 0.02767 0.01952 0.01655 0.00798 ...
## ..$ : num [1:1000] 0.0164 0.02767 0.01952 0.01655 0.00798 ...
## ..$ : num [1:1000] 0.00535 0.00339 0.00451 0.00479 0.00271 ...
## ..$ : num [1:1000] 0.0041 0.00641 0.00644 0.00506 0.0052 ...
## $ c :List of 6
## ..$ : num 0.00926
## ..$ : num 0.0208
## ..$ : num 0.00926
## ..$ : num 0.0208
## ..$ : num 0.00926
## ..$ : num 0.0208
## $ lw :List of 6
## ..$ : num [1:10000] 11.8 11.1 13 12.4 11.1 ...
## ..$ : num [1:10000] 8.33 14.3 11.69 9.84 13.75 ...
## ..$ : num [1:10000] 22 19.7 11.8 25.7 25 ...
## ..$ : num [1:10000] 26.7 23.7 25.2 25.6 20.8 ...
## ..$ : num [1:10000] 25.2 32.1 27.9 26.1 27.9 ...
## ..$ : num [1:10000] 47.3 32.2 29.9 30.7 24.5 ...
## $ ccy :List of 6
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## ..$ : num 0.42
## $ fv :List of 6
## ..$ : num [1:10000] 1117 1362 1345 1287 1576 ...
## ..$ : num [1:10000] 980 1464 1278 1565 1465 ...
## ..$ : num [1:10000] 1628 2813 2565 2888 2344 ...
## ..$ : num [1:10000] 2981 3969 2957 2433 2438 ...
## ..$ : num [1:10000] 2878 2615 2718 3177 2751 ...
## ..$ : num [1:10000] 4272 3908 2849 5042 5737 ...
## $ hr :List of 6
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## $ hrm :List of 6
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## $ hv :List of 6
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## ..$ : num 40
## $ m :List of 6
## ..$ : num 0.1
## ..$ : num 0.1
## ..$ : num 0.2
## ..$ : num 0.2
## ..$ : num 0.3
## ..$ : num 0.3
## $ mv :List of 6
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## $ dm :List of 6
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## ..$ : num 0.026
## $ plp :List of 6
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## ..$ : num 0.25
## $ pfp :List of 6
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## ..$ : num 0.5
## $ fc :List of 6
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## ..$ : num [1:10000] 5.18 4.99 4.28 4.16 3.61 ...
## $ dif :List of 6
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## ..$ : num [1:10000] 0.868 0.919 0.893 0.896 0.897 ...
## $ lsr :List of 6
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## ..$ : num [1:10000] 34.1 36.4 40 24.6 42.5 ...
## $ lnh :List of 6
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## $ he :List of 6
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## ..$ : num [1:10000] 0.206 0.22 0.219 0.192 0.233 ...
## $ ir :List of 6
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## ..$ : num 0
## $ iph :List of 6
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
## ..$ : num 1
The pmap function allows mapping multiple arguments (e.g., lists of same length) in parallel for a function, so that for the nth element of each list will be mapped to a function, and there will be nth mapping.
The function right after the list_of_lists therefore has a number of arguments which is the same as the length of the list_of_lists.
e.g., if the stage of concern is NF (from .t),
the label is .NF (from .p),
the population of its “previous stage” is AF = 14049629 (from pre),
the population of stage of concern is NF = 2070822 (from post),
the binary test for N and F are 1 (from .n and .f respectively)(see .l),
the binary test for J, A and M are 0 (from .j, .a and .m respectively)(see .l),
the N0 to iph are “production parameters” for NF from b_scen.
Therefore the function works on all the values specific to a stage of concern.
In the function, the list_of_lists_2 is a list of lists of (1) “production rates”, (2) populations at different stages, (3) binary tests which are applicable to different stages of concern.
e.g., if the stage of concern is NF,
the parturition times proliferation per month by half (pt*pf/12/2) times “previous stage” of NF (AF) (pre) multiplied by the binary test of N for NF (.n = 1) – should be the number of births of NF stage.
The growth rate (g) times “previous stage” of NF (AF) (pre) multiplied by the binary test of J and A for NF (.j + .a = 0 + 0) – should return 0 as growth input from “previous stage” is not applicable to neonate stage.
Alternatively,
e.g., if the stage of concern is JF,
the parturition times proliferation per month by half (pt*pf/12/2) times “previous stage” of JF (NF) (pre) multiplied by the binary test of N for JF (.n = 0) – should return 0 as births is not given by neonates to juveniles.
The growth rate (g) times “previous stage” of JF (NF) (pre) multiplied by the binary test of J and A for JF (.j + .a = 1 + 0) – should return the number of growth input from neonates to juvenile.
The list_of_lists_2 is mapped to the first argument of the pmap function, and the function is the multiplication of (1) “production rates”, (2) populations at different stages, (3) binary tests which are applicable to different stages of concern.
The result is a data frame (df) with numbers of “Births”, “Growth in”, “Growth out”, “Deaths”, “Offtakes”, and “Culls”.
Then, additional “production parameters” are calculated based on these inputs and outputs, as well as the values from b_scen, and the binary test if applicable to stages of concern.
In this model the capital cost and infrastructure cost are placed in the first month only.
For the details of the object names pls refer to the b_scen above.
For the details of the calculation methods pls refer to https://github.com/GBADsInformatics/GBADsLiverpool/blob/main/Ethiopia%20Workspace/Run%20AHLE%20with%20control%20table_SMALLRUMINANTS.R
Appropriate suffixes are added to label column names of results which belong to a particular age-sex category.
pop[[ i+1 ]] <- pmap(
list_of_lists,
function(pre, post, .t, .p,
.n, .j, .a, .f, .m,
N0, g, pt, pf, pfm, ld, ady, mvl,
o, d, c, lw, ccy, fv, hr, hrm, hv, m, mv,
dm, plp, pfp, fc, dif, lsr, lnh, he, ir, iph
){
set.seed(seed)
s = function(x) sample(x, 1)
list_of_lists_2 = list(
list(pt*pf/12/2, g, g, d, o, c) %>% map(s),
c(list(pre) %>% rep(2), list(post) %>% rep(4)),
list(.n, .j+.a, .n+.j, 1, .j+.a, .a)
)
df = pmap(
list_of_lists_2 ,
\(x,y,z) x*y*z
) %>% data.frame
names(df) <- c("B", "Gi", "Go", "D", "O", "C")
Df = df %>% mutate(
sum = rowSums(.),
come = B + Gi,
leave = sum - come,
diff = come - leave,
new = post + diff,
NOftk = O * (.j + .a) + C * (.a * .m),
PopGro = diff,
TotNChg = NOftk + PopGro,
TotMort = D,
QLwKg = new *s(lw),
OftkLw = NOftk *s(lw),
QMeat = OftkLw *ccy,
QManu = new *s(m) *30,
QHides = D * (.j + .a) * hrm,
QMilk = new * (.a * .f) * s(pt) * pfm * ld * ady,
QWool = 0,
CumDM = new * dm * s(lw) * 30,
ValOftk = NOftk *s(fv),
ValHerd = diff *s(fv),
TotVal = ValHerd + ValOftk,
ValManu = QManu * mv,
ValHides = QHides * hv,
ValMilk = QMilk * mvl,
ProdVal = TotVal + ValManu + ValHides + ValMilk,
FdCost = new * dm * s(lw) * plp * pfp/s(dif) * s(fc) * 30,
LbCost = new * s(lsr) * lnh,
HthCost = new * s(he),
CapCost = ifelse(i == 1, new, 0) * s(fv) * ir,
IstCost = ifelse(i == 1, N0, 0) * s(iph),
TotExp = FdCost + LbCost + HthCost + CapCost + IstCost,
GrsMrg = ProdVal - TotExp,
update = new
)
names(Df) = names(Df) [ - length(Df) ] %>%
paste0(., "_", .t) %>%
c(., .p);
Df
}
) %>% data.frame
#pop %>% head()
pop %>% str
## List of 2
## $ :List of 6
## ..$ .NF: num 2070822
## ..$ .NM: num 2070822
## ..$ .JF: num 1915971
## ..$ .JM: num 1147386
## ..$ .AF: num 1.4e+07
## ..$ .AM: num 3048715
## $ :'data.frame': 1 obs. of 228 variables:
## ..$ B_NF : num 521508
## ..$ Gi_NF : num 0
## ..$ Go_NF : num 345137
## ..$ D_NF : num 47266
## ..$ O_NF : num 0
## ..$ C_NF : num 0
## ..$ sum_NF : num 913912
## ..$ come_NF : num 521508
## ..$ leave_NF : num 392403
## ..$ diff_NF : num 129105
## ..$ new_NF : num 2199927
## ..$ NOftk_NF : num 0
## ..$ PopGro_NF : num 129105
## ..$ TotNChg_NF : num 129105
## ..$ TotMort_NF : num 47266
## ..$ QLwKg_NF : num 27561560
## ..$ OftkLw_NF : num 0
## ..$ QMeat_NF : num 0
## ..$ QManu_NF : num 6599781
## ..$ QHides_NF : num 0
## ..$ QMilk_NF : num 0
## ..$ QWool_NF : num 0
## ..$ CumDM_NF : num 22346778
## ..$ ValOftk_NF : num 0
## ..$ ValHerd_NF : num 1.56e+08
## ..$ TotVal_NF : num 1.56e+08
## ..$ ValManu_NF : num 3299890
## ..$ ValHides_NF: num 0
## ..$ ValMilk_NF : num 0
## ..$ ProdVal_NF : num 1.6e+08
## ..$ FdCost_NF : num 9314393
## ..$ LbCost_NF : num 74896988
## ..$ HthCost_NF : num 425144
## ..$ CapCost_NF : num 0
## ..$ IstCost_NF : num 2070822
## ..$ TotExp_NF : num 86707347
## ..$ GrsMrg_NF : num 72922955
## ..$ .NF : num 2199927
## ..$ B_NM : num 521508
## ..$ Gi_NM : num 0
## ..$ Go_NM : num 345137
## ..$ D_NM : num 47266
## ..$ O_NM : num 0
## ..$ C_NM : num 0
## ..$ sum_NM : num 913912
## ..$ come_NM : num 521508
## ..$ leave_NM : num 392403
## ..$ diff_NM : num 129105
## ..$ new_NM : num 2199927
## ..$ NOftk_NM : num 0
## ..$ PopGro_NM : num 129105
## ..$ TotNChg_NM : num 129105
## ..$ TotMort_NM : num 47266
## ..$ QLwKg_NM : num 27100061
## ..$ OftkLw_NM : num 0
## ..$ QMeat_NM : num 0
## ..$ QManu_NM : num 6599781
## ..$ QHides_NM : num 0
## ..$ QMilk_NM : num 0
## ..$ QWool_NM : num 0
## ..$ CumDM_NM : num 17925164
## ..$ ValOftk_NM : num 0
## ..$ ValHerd_NM : num 1.77e+08
## ..$ TotVal_NM : num 1.77e+08
## ..$ ValManu_NM : num 3299890
## ..$ ValHides_NM: num 0
## ..$ ValMilk_NM : num 0
## ..$ ProdVal_NM : num 1.8e+08
## ..$ FdCost_NM : num 10455723
## ..$ LbCost_NM : num 74896988
## ..$ HthCost_NM : num 425144
## ..$ CapCost_NM : num 0
## ..$ IstCost_NM : num 2070822
## ..$ TotExp_NM : num 87848677
## ..$ GrsMrg_NM : num 92529219
## ..$ .NM : num 2199927
## ..$ B_JF : num 0
## ..$ Gi_JF : num 345137
## ..$ Go_JF : num 319329
## ..$ D_JF : num 19892
## ..$ O_JF : num 6387
## ..$ C_JF : num 0
## ..$ sum_JF : num 690744
## ..$ come_JF : num 345137
## ..$ leave_JF : num 345607
## ..$ diff_JF : num -470
## ..$ new_JF : num 1915501
## ..$ NOftk_JF : num 6387
## ..$ PopGro_JF : num -470
## ..$ TotNChg_JF : num 5917
## ..$ TotMort_JF : num 19892
## ..$ QLwKg_JF : num 43421573
## ..$ OftkLw_JF : num 130170
## ..$ QMeat_JF : num 54671
## ..$ QManu_JF : num 11493008
## ..$ QHides_JF : num 9946
## ..$ QMilk_JF : num 0
## ..$ QWool_JF : num 0
## ..$ CumDM_JF : num 26557009
## .. [list output truncated]
#}
remove the first element of the model result as it is the initial population sizes.
out = pop %>% .[-1] #%>%
#out %>% head
out %>% str
## List of 1
## $ :'data.frame': 1 obs. of 228 variables:
## ..$ B_NF : num 521508
## ..$ Gi_NF : num 0
## ..$ Go_NF : num 345137
## ..$ D_NF : num 47266
## ..$ O_NF : num 0
## ..$ C_NF : num 0
## ..$ sum_NF : num 913912
## ..$ come_NF : num 521508
## ..$ leave_NF : num 392403
## ..$ diff_NF : num 129105
## ..$ new_NF : num 2199927
## ..$ NOftk_NF : num 0
## ..$ PopGro_NF : num 129105
## ..$ TotNChg_NF : num 129105
## ..$ TotMort_NF : num 47266
## ..$ QLwKg_NF : num 27561560
## ..$ OftkLw_NF : num 0
## ..$ QMeat_NF : num 0
## ..$ QManu_NF : num 6599781
## ..$ QHides_NF : num 0
## ..$ QMilk_NF : num 0
## ..$ QWool_NF : num 0
## ..$ CumDM_NF : num 22346778
## ..$ ValOftk_NF : num 0
## ..$ ValHerd_NF : num 1.56e+08
## ..$ TotVal_NF : num 1.56e+08
## ..$ ValManu_NF : num 3299890
## ..$ ValHides_NF: num 0
## ..$ ValMilk_NF : num 0
## ..$ ProdVal_NF : num 1.6e+08
## ..$ FdCost_NF : num 9314393
## ..$ LbCost_NF : num 74896988
## ..$ HthCost_NF : num 425144
## ..$ CapCost_NF : num 0
## ..$ IstCost_NF : num 2070822
## ..$ TotExp_NF : num 86707347
## ..$ GrsMrg_NF : num 72922955
## ..$ .NF : num 2199927
## ..$ B_NM : num 521508
## ..$ Gi_NM : num 0
## ..$ Go_NM : num 345137
## ..$ D_NM : num 47266
## ..$ O_NM : num 0
## ..$ C_NM : num 0
## ..$ sum_NM : num 913912
## ..$ come_NM : num 521508
## ..$ leave_NM : num 392403
## ..$ diff_NM : num 129105
## ..$ new_NM : num 2199927
## ..$ NOftk_NM : num 0
## ..$ PopGro_NM : num 129105
## ..$ TotNChg_NM : num 129105
## ..$ TotMort_NM : num 47266
## ..$ QLwKg_NM : num 27100061
## ..$ OftkLw_NM : num 0
## ..$ QMeat_NM : num 0
## ..$ QManu_NM : num 6599781
## ..$ QHides_NM : num 0
## ..$ QMilk_NM : num 0
## ..$ QWool_NM : num 0
## ..$ CumDM_NM : num 17925164
## ..$ ValOftk_NM : num 0
## ..$ ValHerd_NM : num 1.77e+08
## ..$ TotVal_NM : num 1.77e+08
## ..$ ValManu_NM : num 3299890
## ..$ ValHides_NM: num 0
## ..$ ValMilk_NM : num 0
## ..$ ProdVal_NM : num 1.8e+08
## ..$ FdCost_NM : num 10455723
## ..$ LbCost_NM : num 74896988
## ..$ HthCost_NM : num 425144
## ..$ CapCost_NM : num 0
## ..$ IstCost_NM : num 2070822
## ..$ TotExp_NM : num 87848677
## ..$ GrsMrg_NM : num 92529219
## ..$ .NM : num 2199927
## ..$ B_JF : num 0
## ..$ Gi_JF : num 345137
## ..$ Go_JF : num 319329
## ..$ D_JF : num 19892
## ..$ O_JF : num 6387
## ..$ C_JF : num 0
## ..$ sum_JF : num 690744
## ..$ come_JF : num 345137
## ..$ leave_JF : num 345607
## ..$ diff_JF : num -470
## ..$ new_JF : num 1915501
## ..$ NOftk_JF : num 6387
## ..$ PopGro_JF : num -470
## ..$ TotNChg_JF : num 5917
## ..$ TotMort_JF : num 19892
## ..$ QLwKg_JF : num 43421573
## ..$ OftkLw_JF : num 130170
## ..$ QMeat_JF : num 54671
## ..$ QManu_JF : num 11493008
## ..$ QHides_JF : num 9946
## ..$ QMilk_JF : num 0
## ..$ QWool_JF : num 0
## ..$ CumDM_JF : num 26557009
## .. [list output truncated]
Binding rows will be useful if there are more than one scenario to run.
out = do.call(rbind, out)
#out %>% head
out %>% str
## 'data.frame': 1 obs. of 228 variables:
## $ B_NF : num 521508
## $ Gi_NF : num 0
## $ Go_NF : num 345137
## $ D_NF : num 47266
## $ O_NF : num 0
## $ C_NF : num 0
## $ sum_NF : num 913912
## $ come_NF : num 521508
## $ leave_NF : num 392403
## $ diff_NF : num 129105
## $ new_NF : num 2199927
## $ NOftk_NF : num 0
## $ PopGro_NF : num 129105
## $ TotNChg_NF : num 129105
## $ TotMort_NF : num 47266
## $ QLwKg_NF : num 27561560
## $ OftkLw_NF : num 0
## $ QMeat_NF : num 0
## $ QManu_NF : num 6599781
## $ QHides_NF : num 0
## $ QMilk_NF : num 0
## $ QWool_NF : num 0
## $ CumDM_NF : num 22346778
## $ ValOftk_NF : num 0
## $ ValHerd_NF : num 1.56e+08
## $ TotVal_NF : num 1.56e+08
## $ ValManu_NF : num 3299890
## $ ValHides_NF: num 0
## $ ValMilk_NF : num 0
## $ ProdVal_NF : num 1.6e+08
## $ FdCost_NF : num 9314393
## $ LbCost_NF : num 74896988
## $ HthCost_NF : num 425144
## $ CapCost_NF : num 0
## $ IstCost_NF : num 2070822
## $ TotExp_NF : num 86707347
## $ GrsMrg_NF : num 72922955
## $ .NF : num 2199927
## $ B_NM : num 521508
## $ Gi_NM : num 0
## $ Go_NM : num 345137
## $ D_NM : num 47266
## $ O_NM : num 0
## $ C_NM : num 0
## $ sum_NM : num 913912
## $ come_NM : num 521508
## $ leave_NM : num 392403
## $ diff_NM : num 129105
## $ new_NM : num 2199927
## $ NOftk_NM : num 0
## $ PopGro_NM : num 129105
## $ TotNChg_NM : num 129105
## $ TotMort_NM : num 47266
## $ QLwKg_NM : num 27100061
## $ OftkLw_NM : num 0
## $ QMeat_NM : num 0
## $ QManu_NM : num 6599781
## $ QHides_NM : num 0
## $ QMilk_NM : num 0
## $ QWool_NM : num 0
## $ CumDM_NM : num 17925164
## $ ValOftk_NM : num 0
## $ ValHerd_NM : num 1.77e+08
## $ TotVal_NM : num 1.77e+08
## $ ValManu_NM : num 3299890
## $ ValHides_NM: num 0
## $ ValMilk_NM : num 0
## $ ProdVal_NM : num 1.8e+08
## $ FdCost_NM : num 10455723
## $ LbCost_NM : num 74896988
## $ HthCost_NM : num 425144
## $ CapCost_NM : num 0
## $ IstCost_NM : num 2070822
## $ TotExp_NM : num 87848677
## $ GrsMrg_NM : num 92529219
## $ .NM : num 2199927
## $ B_JF : num 0
## $ Gi_JF : num 345137
## $ Go_JF : num 319329
## $ D_JF : num 19892
## $ O_JF : num 6387
## $ C_JF : num 0
## $ sum_JF : num 690744
## $ come_JF : num 345137
## $ leave_JF : num 345607
## $ diff_JF : num -470
## $ new_JF : num 1915501
## $ NOftk_JF : num 6387
## $ PopGro_JF : num -470
## $ TotNChg_JF : num 5917
## $ TotMort_JF : num 19892
## $ QLwKg_JF : num 43421573
## $ OftkLw_JF : num 130170
## $ QMeat_JF : num 54671
## $ QManu_JF : num 11493008
## $ QHides_JF : num 9946
## $ QMilk_JF : num 0
## $ QWool_JF : num 0
## $ CumDM_JF : num 26557009
## [list output truncated]
prf = names(out) [ 1 : (length(out)/length(.t)) ] #%>%
#%>% str
prf = gsub( .t [[1]] , "", prf)
prf
## [1] "B_" "Gi_" "Go_" "D_" "O_" "C_"
## [7] "sum_" "come_" "leave_" "diff_" "new_" "NOftk_"
## [13] "PopGro_" "TotNChg_" "TotMort_" "QLwKg_" "OftkLw_" "QMeat_"
## [19] "QManu_" "QHides_" "QMilk_" "QWool_" "CumDM_" "ValOftk_"
## [25] "ValHerd_" "TotVal_" "ValManu_" "ValHides_" "ValMilk_" "ProdVal_"
## [31] "FdCost_" "LbCost_" "HthCost_" "CapCost_" "IstCost_" "TotExp_"
## [37] "GrsMrg_" "."
tags = c("", "Overall", paste0(cats, "Com")) #%>%
tags
## [1] "" "Overall" "NCom" "JCom" "ACom" "FCom" "MCom"
tags = map(tags, ~ paste0(prf, .x))
#tags %>% head
tags %>% str
## List of 7
## $ : chr [1:38] "B_" "Gi_" "Go_" "D_" ...
## $ : chr [1:38] "B_Overall" "Gi_Overall" "Go_Overall" "D_Overall" ...
## $ : chr [1:38] "B_NCom" "Gi_NCom" "Go_NCom" "D_NCom" ...
## $ : chr [1:38] "B_JCom" "Gi_JCom" "Go_JCom" "D_JCom" ...
## $ : chr [1:38] "B_ACom" "Gi_ACom" "Go_ACom" "D_ACom" ...
## $ : chr [1:38] "B_FCom" "Gi_FCom" "Go_FCom" "D_FCom" ...
## $ : chr [1:38] "B_MCom" "Gi_MCom" "Go_MCom" "D_MCom" ...
Select model results (columns of age-sex categories) of the same prefix. And calculate the total. And multiply the selected model results by the binary tests of N, J, A, F, M respectively, and respectively calculate the sum. Then create the data frame which contains the selected model results, the total, and the combined results of subgroups. And then update the column names with the character strings in the tags object.
subtot = pmap(tags,
function(p, o,
n, j, a, f, m
){
df = out %>% select(starts_with(p))
rs = rowSums(df)
mp = map(.l,
function(x) apply(df, 1,
function(y) (unlist(x) * y) %>% sum
)
) %>% data.frame
DF = data.frame(df, rs, mp)
names(DF) [ - c(1 : length(.t)) ] <- c(o, n, j, a, f, m)
DF
}
) %>% data.frame
#subtot %>% head
subtot %>% str
## 'data.frame': 1 obs. of 456 variables:
## $ B_NF : num 521508
## $ B_NM : num 521508
## $ B_JF : num 0
## $ B_JM : num 0
## $ B_AF : num 0
## $ B_AM : num 0
## $ B_Overall : num 1043017
## $ B_NCom : num 1043017
## $ B_JCom : num 0
## $ B_ACom : num 0
## $ B_FCom : num 521508
## $ B_MCom : num 521508
## $ Gi_NF : num 0
## $ Gi_NM : num 0
## $ Gi_JF : num 345137
## $ Gi_JM : num 345137
## $ Gi_AF : num 319329
## $ Gi_AM : num 191231
## $ Gi_Overall : num 1200834
## $ Gi_NCom : num 0
## $ Gi_JCom : num 690274
## $ Gi_ACom : num 510560
## $ Gi_FCom : num 664466
## $ Gi_MCom : num 536368
## $ Go_NF : num 345137
## $ Go_NM : num 345137
## $ Go_JF : num 319329
## $ Go_JM : num 191231
## $ Go_AF : num 0
## $ Go_AM : num 0
## $ Go_Overall : num 1200834
## $ Go_NCom : num 690274
## $ Go_JCom : num 510560
## $ Go_ACom : num 0
## $ Go_FCom : num 664466
## $ Go_MCom : num 536368
## $ D_NF : num 47266
## $ D_NM : num 47266
## $ D_JF : num 19892
## $ D_JM : num 11912
## $ D_AF : num 60906
## $ D_AM : num 14665
## $ D_Overall : num 201908
## $ D_NCom : num 94533
## $ D_JCom : num 31804
## $ D_ACom : num 75571
## $ D_FCom : num 128064
## $ D_MCom : num 73844
## $ O_NF : num 0
## $ O_NM : num 0
## $ O_JF : num 6387
## $ O_JM : num 51632
## $ O_AF : num 46832
## $ O_AM : num 137192
## $ O_Overall : num 242043
## $ O_NCom : num 0
## $ O_JCom : num 58019
## $ O_ACom : num 184024
## $ O_FCom : num 53219
## $ O_MCom : num 188825
## $ C_NF : num 0
## $ C_NM : num 0
## $ C_JF : num 0
## $ C_JM : num 0
## $ C_AF : num 130089
## $ C_AM : num 63515
## $ C_Overall : num 193604
## $ C_NCom : num 0
## $ C_JCom : num 0
## $ C_ACom : num 193604
## $ C_FCom : num 130089
## $ C_MCom : num 63515
## $ sum_NF : num 913912
## $ sum_NM : num 913912
## $ sum_JF : num 690744
## $ sum_JM : num 6e+05
## $ sum_AF : num 557156
## $ sum_AM : num 406603
## $ sum_Overall : num 4082239
## $ sum_NCom : num 1827824
## $ sum_JCom : num 1290656
## $ sum_ACom : num 963759
## $ sum_FCom : num 2161812
## $ sum_MCom : num 1920428
## $ come_NF : num 521508
## $ come_NM : num 521508
## $ come_JF : num 345137
## $ come_JM : num 345137
## $ come_AF : num 319329
## $ come_AM : num 191231
## $ come_Overall : num 2243850
## $ come_NCom : num 1043017
## $ come_JCom : num 690274
## $ come_ACom : num 510560
## $ come_FCom : num 1185974
## $ come_MCom : num 1057876
## $ leave_NF : num 392403
## $ leave_NM : num 392403
## $ leave_JF : num 345607
## [list output truncated]
Such as the population sizes and the quantity of liveweight in Kg.
xc = subtot %>% select(starts_with(c(".", "new", "QLwKg"))) # %>%
#xc %>%head()
xc %>% str()
## 'data.frame': 1 obs. of 36 variables:
## $ .NF : num 2199927
## $ .NM : num 2199927
## $ .JF : num 1915501
## $ .JM : num 1237747
## $ .AF : num 14131130
## $ .AM : num 3024574
## $ .Overall : num 24708807
## $ .NCom : num 4399854
## $ .JCom : num 3153249
## $ .ACom : num 17155704
## $ .FCom : num 18246558
## $ .MCom : num 6462248
## $ new_NF : num 2199927
## $ new_NM : num 2199927
## $ new_JF : num 1915501
## $ new_JM : num 1237747
## $ new_AF : num 14131130
## $ new_AM : num 3024574
## $ new_Overall : num 24708807
## $ new_NCom : num 4399854
## $ new_JCom : num 3153249
## $ new_ACom : num 17155704
## $ new_FCom : num 18246558
## $ new_MCom : num 6462248
## $ QLwKg_NF : num 27561560
## $ QLwKg_NM : num 27100061
## $ QLwKg_JF : num 43421573
## $ QLwKg_JM : num 26889656
## $ QLwKg_AF : num 4.13e+08
## $ QLwKg_AM : num 83659455
## $ QLwKg_Overall: num 6.21e+08
## $ QLwKg_NCom : num 54661621
## $ QLwKg_JCom : num 70311230
## $ QLwKg_ACom : num 4.96e+08
## $ QLwKg_FCom : num 4.84e+08
## $ QLwKg_MCom : num 1.38e+08
xc = names( xc )
xc
## [1] ".NF" ".NM" ".JF" ".JM"
## [5] ".AF" ".AM" ".Overall" ".NCom"
## [9] ".JCom" ".ACom" ".FCom" ".MCom"
## [13] "new_NF" "new_NM" "new_JF" "new_JM"
## [17] "new_AF" "new_AM" "new_Overall" "new_NCom"
## [21] "new_JCom" "new_ACom" "new_FCom" "new_MCom"
## [25] "QLwKg_NF" "QLwKg_NM" "QLwKg_JF" "QLwKg_JM"
## [29] "QLwKg_AF" "QLwKg_AM" "QLwKg_Overall" "QLwKg_NCom"
## [33] "QLwKg_JCom" "QLwKg_ACom" "QLwKg_FCom" "QLwKg_MCom"
variables (columns) other than population sizes and the quantity of liveweight.
OUT = subtot %>% mutate_if( ! names(.) %in% xc, cumsum)
#OUT %>%head
OUT %>% str
## 'data.frame': 1 obs. of 456 variables:
## $ B_NF : num 521508
## $ B_NM : num 521508
## $ B_JF : num 0
## $ B_JM : num 0
## $ B_AF : num 0
## $ B_AM : num 0
## $ B_Overall : num 1043017
## $ B_NCom : num 1043017
## $ B_JCom : num 0
## $ B_ACom : num 0
## $ B_FCom : num 521508
## $ B_MCom : num 521508
## $ Gi_NF : num 0
## $ Gi_NM : num 0
## $ Gi_JF : num 345137
## $ Gi_JM : num 345137
## $ Gi_AF : num 319329
## $ Gi_AM : num 191231
## $ Gi_Overall : num 1200834
## $ Gi_NCom : num 0
## $ Gi_JCom : num 690274
## $ Gi_ACom : num 510560
## $ Gi_FCom : num 664466
## $ Gi_MCom : num 536368
## $ Go_NF : num 345137
## $ Go_NM : num 345137
## $ Go_JF : num 319329
## $ Go_JM : num 191231
## $ Go_AF : num 0
## $ Go_AM : num 0
## $ Go_Overall : num 1200834
## $ Go_NCom : num 690274
## $ Go_JCom : num 510560
## $ Go_ACom : num 0
## $ Go_FCom : num 664466
## $ Go_MCom : num 536368
## $ D_NF : num 47266
## $ D_NM : num 47266
## $ D_JF : num 19892
## $ D_JM : num 11912
## $ D_AF : num 60906
## $ D_AM : num 14665
## $ D_Overall : num 201908
## $ D_NCom : num 94533
## $ D_JCom : num 31804
## $ D_ACom : num 75571
## $ D_FCom : num 128064
## $ D_MCom : num 73844
## $ O_NF : num 0
## $ O_NM : num 0
## $ O_JF : num 6387
## $ O_JM : num 51632
## $ O_AF : num 46832
## $ O_AM : num 137192
## $ O_Overall : num 242043
## $ O_NCom : num 0
## $ O_JCom : num 58019
## $ O_ACom : num 184024
## $ O_FCom : num 53219
## $ O_MCom : num 188825
## $ C_NF : num 0
## $ C_NM : num 0
## $ C_JF : num 0
## $ C_JM : num 0
## $ C_AF : num 130089
## $ C_AM : num 63515
## $ C_Overall : num 193604
## $ C_NCom : num 0
## $ C_JCom : num 0
## $ C_ACom : num 193604
## $ C_FCom : num 130089
## $ C_MCom : num 63515
## $ sum_NF : num 913912
## $ sum_NM : num 913912
## $ sum_JF : num 690744
## $ sum_JM : num 6e+05
## $ sum_AF : num 557156
## $ sum_AM : num 406603
## $ sum_Overall : num 4082239
## $ sum_NCom : num 1827824
## $ sum_JCom : num 1290656
## $ sum_ACom : num 963759
## $ sum_FCom : num 2161812
## $ sum_MCom : num 1920428
## $ come_NF : num 521508
## $ come_NM : num 521508
## $ come_JF : num 345137
## $ come_JM : num 345137
## $ come_AF : num 319329
## $ come_AM : num 191231
## $ come_Overall : num 2243850
## $ come_NCom : num 1043017
## $ come_JCom : num 690274
## $ come_ACom : num 510560
## $ come_FCom : num 1185974
## $ come_MCom : num 1057876
## $ leave_NF : num 392403
## $ leave_NM : num 392403
## $ leave_JF : num 345607
## [list output truncated]
#}
Combine multi-dimensional arrays of model results if more than one set of model results. And compute statistical parameters (e.g., mean) for the nruns number of each “production parameter” for each month.
ou = map(
list(mean,
sd,
min,
function(x) quantile(x, .25),
median,
function(x) quantile(x, .75),
max
),
function(x) abind(OUT, along = 3) %>%
apply(., 1:2, x) %>%
as.data.frame
)
#ou %>% head
ou %>% str
## List of 7
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num NA
## ..$ B_NM : num NA
## ..$ B_JF : num NA
## ..$ B_JM : num NA
## ..$ B_AF : num NA
## ..$ B_AM : num NA
## ..$ B_Overall : num NA
## ..$ B_NCom : num NA
## ..$ B_JCom : num NA
## ..$ B_ACom : num NA
## ..$ B_FCom : num NA
## ..$ B_MCom : num NA
## ..$ Gi_NF : num NA
## ..$ Gi_NM : num NA
## ..$ Gi_JF : num NA
## ..$ Gi_JM : num NA
## ..$ Gi_AF : num NA
## ..$ Gi_AM : num NA
## ..$ Gi_Overall : num NA
## ..$ Gi_NCom : num NA
## ..$ Gi_JCom : num NA
## ..$ Gi_ACom : num NA
## ..$ Gi_FCom : num NA
## ..$ Gi_MCom : num NA
## ..$ Go_NF : num NA
## ..$ Go_NM : num NA
## ..$ Go_JF : num NA
## ..$ Go_JM : num NA
## ..$ Go_AF : num NA
## ..$ Go_AM : num NA
## ..$ Go_Overall : num NA
## ..$ Go_NCom : num NA
## ..$ Go_JCom : num NA
## ..$ Go_ACom : num NA
## ..$ Go_FCom : num NA
## ..$ Go_MCom : num NA
## ..$ D_NF : num NA
## ..$ D_NM : num NA
## ..$ D_JF : num NA
## ..$ D_JM : num NA
## ..$ D_AF : num NA
## ..$ D_AM : num NA
## ..$ D_Overall : num NA
## ..$ D_NCom : num NA
## ..$ D_JCom : num NA
## ..$ D_ACom : num NA
## ..$ D_FCom : num NA
## ..$ D_MCom : num NA
## ..$ O_NF : num NA
## ..$ O_NM : num NA
## ..$ O_JF : num NA
## ..$ O_JM : num NA
## ..$ O_AF : num NA
## ..$ O_AM : num NA
## ..$ O_Overall : num NA
## ..$ O_NCom : num NA
## ..$ O_JCom : num NA
## ..$ O_ACom : num NA
## ..$ O_FCom : num NA
## ..$ O_MCom : num NA
## ..$ C_NF : num NA
## ..$ C_NM : num NA
## ..$ C_JF : num NA
## ..$ C_JM : num NA
## ..$ C_AF : num NA
## ..$ C_AM : num NA
## ..$ C_Overall : num NA
## ..$ C_NCom : num NA
## ..$ C_JCom : num NA
## ..$ C_ACom : num NA
## ..$ C_FCom : num NA
## ..$ C_MCom : num NA
## ..$ sum_NF : num NA
## ..$ sum_NM : num NA
## ..$ sum_JF : num NA
## ..$ sum_JM : num NA
## ..$ sum_AF : num NA
## ..$ sum_AM : num NA
## ..$ sum_Overall : num NA
## ..$ sum_NCom : num NA
## ..$ sum_JCom : num NA
## ..$ sum_ACom : num NA
## ..$ sum_FCom : num NA
## ..$ sum_MCom : num NA
## ..$ come_NF : num NA
## ..$ come_NM : num NA
## ..$ come_JF : num NA
## ..$ come_JM : num NA
## ..$ come_AF : num NA
## ..$ come_AM : num NA
## ..$ come_Overall : num NA
## ..$ come_NCom : num NA
## ..$ come_JCom : num NA
## ..$ come_ACom : num NA
## ..$ come_FCom : num NA
## ..$ come_MCom : num NA
## ..$ leave_NF : num NA
## ..$ leave_NM : num NA
## ..$ leave_JF : num NA
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
For each statistical parameter, only present the result of the final month.
ou= ou %>% map(., ~ .x [ Num_months , ] ) # %>%
#ou %>% head
ou %>% str
## List of 7
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num NA
## ..$ B_NM : num NA
## ..$ B_JF : num NA
## ..$ B_JM : num NA
## ..$ B_AF : num NA
## ..$ B_AM : num NA
## ..$ B_Overall : num NA
## ..$ B_NCom : num NA
## ..$ B_JCom : num NA
## ..$ B_ACom : num NA
## ..$ B_FCom : num NA
## ..$ B_MCom : num NA
## ..$ Gi_NF : num NA
## ..$ Gi_NM : num NA
## ..$ Gi_JF : num NA
## ..$ Gi_JM : num NA
## ..$ Gi_AF : num NA
## ..$ Gi_AM : num NA
## ..$ Gi_Overall : num NA
## ..$ Gi_NCom : num NA
## ..$ Gi_JCom : num NA
## ..$ Gi_ACom : num NA
## ..$ Gi_FCom : num NA
## ..$ Gi_MCom : num NA
## ..$ Go_NF : num NA
## ..$ Go_NM : num NA
## ..$ Go_JF : num NA
## ..$ Go_JM : num NA
## ..$ Go_AF : num NA
## ..$ Go_AM : num NA
## ..$ Go_Overall : num NA
## ..$ Go_NCom : num NA
## ..$ Go_JCom : num NA
## ..$ Go_ACom : num NA
## ..$ Go_FCom : num NA
## ..$ Go_MCom : num NA
## ..$ D_NF : num NA
## ..$ D_NM : num NA
## ..$ D_JF : num NA
## ..$ D_JM : num NA
## ..$ D_AF : num NA
## ..$ D_AM : num NA
## ..$ D_Overall : num NA
## ..$ D_NCom : num NA
## ..$ D_JCom : num NA
## ..$ D_ACom : num NA
## ..$ D_FCom : num NA
## ..$ D_MCom : num NA
## ..$ O_NF : num NA
## ..$ O_NM : num NA
## ..$ O_JF : num NA
## ..$ O_JM : num NA
## ..$ O_AF : num NA
## ..$ O_AM : num NA
## ..$ O_Overall : num NA
## ..$ O_NCom : num NA
## ..$ O_JCom : num NA
## ..$ O_ACom : num NA
## ..$ O_FCom : num NA
## ..$ O_MCom : num NA
## ..$ C_NF : num NA
## ..$ C_NM : num NA
## ..$ C_JF : num NA
## ..$ C_JM : num NA
## ..$ C_AF : num NA
## ..$ C_AM : num NA
## ..$ C_Overall : num NA
## ..$ C_NCom : num NA
## ..$ C_JCom : num NA
## ..$ C_ACom : num NA
## ..$ C_FCom : num NA
## ..$ C_MCom : num NA
## ..$ sum_NF : num NA
## ..$ sum_NM : num NA
## ..$ sum_JF : num NA
## ..$ sum_JM : num NA
## ..$ sum_AF : num NA
## ..$ sum_AM : num NA
## ..$ sum_Overall : num NA
## ..$ sum_NCom : num NA
## ..$ sum_JCom : num NA
## ..$ sum_ACom : num NA
## ..$ sum_FCom : num NA
## ..$ sum_MCom : num NA
## ..$ come_NF : num NA
## ..$ come_NM : num NA
## ..$ come_JF : num NA
## ..$ come_JM : num NA
## ..$ come_AF : num NA
## ..$ come_AM : num NA
## ..$ come_Overall : num NA
## ..$ come_NCom : num NA
## ..$ come_JCom : num NA
## ..$ come_ACom : num NA
## ..$ come_FCom : num NA
## ..$ come_MCom : num NA
## ..$ leave_NF : num NA
## ..$ leave_NM : num NA
## ..$ leave_JF : num NA
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
## $ :'data.frame': 1 obs. of 456 variables:
## ..$ B_NF : num 521508
## ..$ B_NM : num 521508
## ..$ B_JF : num 0
## ..$ B_JM : num 0
## ..$ B_AF : num 0
## ..$ B_AM : num 0
## ..$ B_Overall : num 1043017
## ..$ B_NCom : num 1043017
## ..$ B_JCom : num 0
## ..$ B_ACom : num 0
## ..$ B_FCom : num 521508
## ..$ B_MCom : num 521508
## ..$ Gi_NF : num 0
## ..$ Gi_NM : num 0
## ..$ Gi_JF : num 345137
## ..$ Gi_JM : num 345137
## ..$ Gi_AF : num 319329
## ..$ Gi_AM : num 191231
## ..$ Gi_Overall : num 1200834
## ..$ Gi_NCom : num 0
## ..$ Gi_JCom : num 690274
## ..$ Gi_ACom : num 510560
## ..$ Gi_FCom : num 664466
## ..$ Gi_MCom : num 536368
## ..$ Go_NF : num 345137
## ..$ Go_NM : num 345137
## ..$ Go_JF : num 319329
## ..$ Go_JM : num 191231
## ..$ Go_AF : num 0
## ..$ Go_AM : num 0
## ..$ Go_Overall : num 1200834
## ..$ Go_NCom : num 690274
## ..$ Go_JCom : num 510560
## ..$ Go_ACom : num 0
## ..$ Go_FCom : num 664466
## ..$ Go_MCom : num 536368
## ..$ D_NF : num 47266
## ..$ D_NM : num 47266
## ..$ D_JF : num 19892
## ..$ D_JM : num 11912
## ..$ D_AF : num 60906
## ..$ D_AM : num 14665
## ..$ D_Overall : num 201908
## ..$ D_NCom : num 94533
## ..$ D_JCom : num 31804
## ..$ D_ACom : num 75571
## ..$ D_FCom : num 128064
## ..$ D_MCom : num 73844
## ..$ O_NF : num 0
## ..$ O_NM : num 0
## ..$ O_JF : num 6387
## ..$ O_JM : num 51632
## ..$ O_AF : num 46832
## ..$ O_AM : num 137192
## ..$ O_Overall : num 242043
## ..$ O_NCom : num 0
## ..$ O_JCom : num 58019
## ..$ O_ACom : num 184024
## ..$ O_FCom : num 53219
## ..$ O_MCom : num 188825
## ..$ C_NF : num 0
## ..$ C_NM : num 0
## ..$ C_JF : num 0
## ..$ C_JM : num 0
## ..$ C_AF : num 130089
## ..$ C_AM : num 63515
## ..$ C_Overall : num 193604
## ..$ C_NCom : num 0
## ..$ C_JCom : num 0
## ..$ C_ACom : num 193604
## ..$ C_FCom : num 130089
## ..$ C_MCom : num 63515
## ..$ sum_NF : num 913912
## ..$ sum_NM : num 913912
## ..$ sum_JF : num 690744
## ..$ sum_JM : num 6e+05
## ..$ sum_AF : num 557156
## ..$ sum_AM : num 406603
## ..$ sum_Overall : num 4082239
## ..$ sum_NCom : num 1827824
## ..$ sum_JCom : num 1290656
## ..$ sum_ACom : num 963759
## ..$ sum_FCom : num 2161812
## ..$ sum_MCom : num 1920428
## ..$ come_NF : num 521508
## ..$ come_NM : num 521508
## ..$ come_JF : num 345137
## ..$ come_JM : num 345137
## ..$ come_AF : num 319329
## ..$ come_AM : num 191231
## ..$ come_Overall : num 2243850
## ..$ come_NCom : num 1043017
## ..$ come_JCom : num 690274
## ..$ come_ACom : num 510560
## ..$ come_FCom : num 1185974
## ..$ come_MCom : num 1057876
## ..$ leave_NF : num 392403
## ..$ leave_NM : num 392403
## ..$ leave_JF : num 345607
## .. [list output truncated]
ou= do.call(rbind, ou) # %>%
#ou %>% head
ou%>% str
## 'data.frame': 7 obs. of 456 variables:
## $ B_NF : num 521508 NA 521508 521508 521508 ...
## $ B_NM : num 521508 NA 521508 521508 521508 ...
## $ B_JF : num 0 NA 0 0 0 0 0
## $ B_JM : num 0 NA 0 0 0 0 0
## $ B_AF : num 0 NA 0 0 0 0 0
## $ B_AM : num 0 NA 0 0 0 0 0
## $ B_Overall : num 1043017 NA 1043017 1043017 1043017 ...
## $ B_NCom : num 1043017 NA 1043017 1043017 1043017 ...
## $ B_JCom : num 0 NA 0 0 0 0 0
## $ B_ACom : num 0 NA 0 0 0 0 0
## $ B_FCom : num 521508 NA 521508 521508 521508 ...
## $ B_MCom : num 521508 NA 521508 521508 521508 ...
## $ Gi_NF : num 0 NA 0 0 0 0 0
## $ Gi_NM : num 0 NA 0 0 0 0 0
## $ Gi_JF : num 345137 NA 345137 345137 345137 ...
## $ Gi_JM : num 345137 NA 345137 345137 345137 ...
## $ Gi_AF : num 319329 NA 319329 319329 319329 ...
## $ Gi_AM : num 191231 NA 191231 191231 191231 ...
## $ Gi_Overall : num 1200834 NA 1200834 1200834 1200834 ...
## $ Gi_NCom : num 0 NA 0 0 0 0 0
## $ Gi_JCom : num 690274 NA 690274 690274 690274 ...
## $ Gi_ACom : num 510560 NA 510560 510560 510560 ...
## $ Gi_FCom : num 664466 NA 664466 664466 664466 ...
## $ Gi_MCom : num 536368 NA 536368 536368 536368 ...
## $ Go_NF : num 345137 NA 345137 345137 345137 ...
## $ Go_NM : num 345137 NA 345137 345137 345137 ...
## $ Go_JF : num 319329 NA 319329 319329 319329 ...
## $ Go_JM : num 191231 NA 191231 191231 191231 ...
## $ Go_AF : num 0 NA 0 0 0 0 0
## $ Go_AM : num 0 NA 0 0 0 0 0
## $ Go_Overall : num 1200834 NA 1200834 1200834 1200834 ...
## $ Go_NCom : num 690274 NA 690274 690274 690274 ...
## $ Go_JCom : num 510560 NA 510560 510560 510560 ...
## $ Go_ACom : num 0 NA 0 0 0 0 0
## $ Go_FCom : num 664466 NA 664466 664466 664466 ...
## $ Go_MCom : num 536368 NA 536368 536368 536368 ...
## $ D_NF : num 47266 NA 47266 47266 47266 ...
## $ D_NM : num 47266 NA 47266 47266 47266 ...
## $ D_JF : num 19892 NA 19892 19892 19892 ...
## $ D_JM : num 11912 NA 11912 11912 11912 ...
## $ D_AF : num 60906 NA 60906 60906 60906 ...
## $ D_AM : num 14665 NA 14665 14665 14665 ...
## $ D_Overall : num 201908 NA 201908 201908 201908 ...
## $ D_NCom : num 94533 NA 94533 94533 94533 ...
## $ D_JCom : num 31804 NA 31804 31804 31804 ...
## $ D_ACom : num 75571 NA 75571 75571 75571 ...
## $ D_FCom : num 128064 NA 128064 128064 128064 ...
## $ D_MCom : num 73844 NA 73844 73844 73844 ...
## $ O_NF : num 0 NA 0 0 0 0 0
## $ O_NM : num 0 NA 0 0 0 0 0
## $ O_JF : num 6387 NA 6387 6387 6387 ...
## $ O_JM : num 51632 NA 51632 51632 51632 ...
## $ O_AF : num 46832 NA 46832 46832 46832 ...
## $ O_AM : num 137192 NA 137192 137192 137192 ...
## $ O_Overall : num 242043 NA 242043 242043 242043 ...
## $ O_NCom : num 0 NA 0 0 0 0 0
## $ O_JCom : num 58019 NA 58019 58019 58019 ...
## $ O_ACom : num 184024 NA 184024 184024 184024 ...
## $ O_FCom : num 53219 NA 53219 53219 53219 ...
## $ O_MCom : num 188825 NA 188825 188825 188825 ...
## $ C_NF : num 0 NA 0 0 0 0 0
## $ C_NM : num 0 NA 0 0 0 0 0
## $ C_JF : num 0 NA 0 0 0 0 0
## $ C_JM : num 0 NA 0 0 0 0 0
## $ C_AF : num 130089 NA 130089 130089 130089 ...
## $ C_AM : num 63515 NA 63515 63515 63515 ...
## $ C_Overall : num 193604 NA 193604 193604 193604 ...
## $ C_NCom : num 0 NA 0 0 0 0 0
## $ C_JCom : num 0 NA 0 0 0 0 0
## $ C_ACom : num 193604 NA 193604 193604 193604 ...
## $ C_FCom : num 130089 NA 130089 130089 130089 ...
## $ C_MCom : num 63515 NA 63515 63515 63515 ...
## $ sum_NF : num 913912 NA 913912 913912 913912 ...
## $ sum_NM : num 913912 NA 913912 913912 913912 ...
## $ sum_JF : num 690744 NA 690744 690744 690744 ...
## $ sum_JM : num 6e+05 NA 6e+05 6e+05 6e+05 ...
## $ sum_AF : num 557156 NA 557156 557156 557156 ...
## $ sum_AM : num 406603 NA 406603 406603 406603 ...
## $ sum_Overall : num 4082239 NA 4082239 4082239 4082239 ...
## $ sum_NCom : num 1827824 NA 1827824 1827824 1827824 ...
## $ sum_JCom : num 1290656 NA 1290656 1290656 1290656 ...
## $ sum_ACom : num 963759 NA 963759 963759 963759 ...
## $ sum_FCom : num 2161812 NA 2161812 2161812 2161812 ...
## $ sum_MCom : num 1920428 NA 1920428 1920428 1920428 ...
## $ come_NF : num 521508 NA 521508 521508 521508 ...
## $ come_NM : num 521508 NA 521508 521508 521508 ...
## $ come_JF : num 345137 NA 345137 345137 345137 ...
## $ come_JM : num 345137 NA 345137 345137 345137 ...
## $ come_AF : num 319329 NA 319329 319329 319329 ...
## $ come_AM : num 191231 NA 191231 191231 191231 ...
## $ come_Overall : num 2243850 NA 2243850 2243850 2243850 ...
## $ come_NCom : num 1043017 NA 1043017 1043017 1043017 ...
## $ come_JCom : num 690274 NA 690274 690274 690274 ...
## $ come_ACom : num 510560 NA 510560 510560 510560 ...
## $ come_FCom : num 1185974 NA 1185974 1185974 1185974 ...
## $ come_MCom : num 1057876 NA 1057876 1057876 1057876 ...
## $ leave_NF : num 392403 NA 392403 392403 392403 ...
## $ leave_NM : num 392403 NA 392403 392403 392403 ...
## $ leave_JF : num 345607 NA 345607 345607 345607 ...
## [list output truncated]
ou= mutate(ou, var_name = c("Mean", "StDev", "Min", "Q1", "Median", "Q3", "Max")) #%>%
#ou %>% head
ou%>% str
## 'data.frame': 7 obs. of 457 variables:
## $ B_NF : num 521508 NA 521508 521508 521508 ...
## $ B_NM : num 521508 NA 521508 521508 521508 ...
## $ B_JF : num 0 NA 0 0 0 0 0
## $ B_JM : num 0 NA 0 0 0 0 0
## $ B_AF : num 0 NA 0 0 0 0 0
## $ B_AM : num 0 NA 0 0 0 0 0
## $ B_Overall : num 1043017 NA 1043017 1043017 1043017 ...
## $ B_NCom : num 1043017 NA 1043017 1043017 1043017 ...
## $ B_JCom : num 0 NA 0 0 0 0 0
## $ B_ACom : num 0 NA 0 0 0 0 0
## $ B_FCom : num 521508 NA 521508 521508 521508 ...
## $ B_MCom : num 521508 NA 521508 521508 521508 ...
## $ Gi_NF : num 0 NA 0 0 0 0 0
## $ Gi_NM : num 0 NA 0 0 0 0 0
## $ Gi_JF : num 345137 NA 345137 345137 345137 ...
## $ Gi_JM : num 345137 NA 345137 345137 345137 ...
## $ Gi_AF : num 319329 NA 319329 319329 319329 ...
## $ Gi_AM : num 191231 NA 191231 191231 191231 ...
## $ Gi_Overall : num 1200834 NA 1200834 1200834 1200834 ...
## $ Gi_NCom : num 0 NA 0 0 0 0 0
## $ Gi_JCom : num 690274 NA 690274 690274 690274 ...
## $ Gi_ACom : num 510560 NA 510560 510560 510560 ...
## $ Gi_FCom : num 664466 NA 664466 664466 664466 ...
## $ Gi_MCom : num 536368 NA 536368 536368 536368 ...
## $ Go_NF : num 345137 NA 345137 345137 345137 ...
## $ Go_NM : num 345137 NA 345137 345137 345137 ...
## $ Go_JF : num 319329 NA 319329 319329 319329 ...
## $ Go_JM : num 191231 NA 191231 191231 191231 ...
## $ Go_AF : num 0 NA 0 0 0 0 0
## $ Go_AM : num 0 NA 0 0 0 0 0
## $ Go_Overall : num 1200834 NA 1200834 1200834 1200834 ...
## $ Go_NCom : num 690274 NA 690274 690274 690274 ...
## $ Go_JCom : num 510560 NA 510560 510560 510560 ...
## $ Go_ACom : num 0 NA 0 0 0 0 0
## $ Go_FCom : num 664466 NA 664466 664466 664466 ...
## $ Go_MCom : num 536368 NA 536368 536368 536368 ...
## $ D_NF : num 47266 NA 47266 47266 47266 ...
## $ D_NM : num 47266 NA 47266 47266 47266 ...
## $ D_JF : num 19892 NA 19892 19892 19892 ...
## $ D_JM : num 11912 NA 11912 11912 11912 ...
## $ D_AF : num 60906 NA 60906 60906 60906 ...
## $ D_AM : num 14665 NA 14665 14665 14665 ...
## $ D_Overall : num 201908 NA 201908 201908 201908 ...
## $ D_NCom : num 94533 NA 94533 94533 94533 ...
## $ D_JCom : num 31804 NA 31804 31804 31804 ...
## $ D_ACom : num 75571 NA 75571 75571 75571 ...
## $ D_FCom : num 128064 NA 128064 128064 128064 ...
## $ D_MCom : num 73844 NA 73844 73844 73844 ...
## $ O_NF : num 0 NA 0 0 0 0 0
## $ O_NM : num 0 NA 0 0 0 0 0
## $ O_JF : num 6387 NA 6387 6387 6387 ...
## $ O_JM : num 51632 NA 51632 51632 51632 ...
## $ O_AF : num 46832 NA 46832 46832 46832 ...
## $ O_AM : num 137192 NA 137192 137192 137192 ...
## $ O_Overall : num 242043 NA 242043 242043 242043 ...
## $ O_NCom : num 0 NA 0 0 0 0 0
## $ O_JCom : num 58019 NA 58019 58019 58019 ...
## $ O_ACom : num 184024 NA 184024 184024 184024 ...
## $ O_FCom : num 53219 NA 53219 53219 53219 ...
## $ O_MCom : num 188825 NA 188825 188825 188825 ...
## $ C_NF : num 0 NA 0 0 0 0 0
## $ C_NM : num 0 NA 0 0 0 0 0
## $ C_JF : num 0 NA 0 0 0 0 0
## $ C_JM : num 0 NA 0 0 0 0 0
## $ C_AF : num 130089 NA 130089 130089 130089 ...
## $ C_AM : num 63515 NA 63515 63515 63515 ...
## $ C_Overall : num 193604 NA 193604 193604 193604 ...
## $ C_NCom : num 0 NA 0 0 0 0 0
## $ C_JCom : num 0 NA 0 0 0 0 0
## $ C_ACom : num 193604 NA 193604 193604 193604 ...
## $ C_FCom : num 130089 NA 130089 130089 130089 ...
## $ C_MCom : num 63515 NA 63515 63515 63515 ...
## $ sum_NF : num 913912 NA 913912 913912 913912 ...
## $ sum_NM : num 913912 NA 913912 913912 913912 ...
## $ sum_JF : num 690744 NA 690744 690744 690744 ...
## $ sum_JM : num 6e+05 NA 6e+05 6e+05 6e+05 ...
## $ sum_AF : num 557156 NA 557156 557156 557156 ...
## $ sum_AM : num 406603 NA 406603 406603 406603 ...
## $ sum_Overall : num 4082239 NA 4082239 4082239 4082239 ...
## $ sum_NCom : num 1827824 NA 1827824 1827824 1827824 ...
## $ sum_JCom : num 1290656 NA 1290656 1290656 1290656 ...
## $ sum_ACom : num 963759 NA 963759 963759 963759 ...
## $ sum_FCom : num 2161812 NA 2161812 2161812 2161812 ...
## $ sum_MCom : num 1920428 NA 1920428 1920428 1920428 ...
## $ come_NF : num 521508 NA 521508 521508 521508 ...
## $ come_NM : num 521508 NA 521508 521508 521508 ...
## $ come_JF : num 345137 NA 345137 345137 345137 ...
## $ come_JM : num 345137 NA 345137 345137 345137 ...
## $ come_AF : num 319329 NA 319329 319329 319329 ...
## $ come_AM : num 191231 NA 191231 191231 191231 ...
## $ come_Overall : num 2243850 NA 2243850 2243850 2243850 ...
## $ come_NCom : num 1043017 NA 1043017 1043017 1043017 ...
## $ come_JCom : num 690274 NA 690274 690274 690274 ...
## $ come_ACom : num 510560 NA 510560 510560 510560 ...
## $ come_FCom : num 1185974 NA 1185974 1185974 1185974 ...
## $ come_MCom : num 1057876 NA 1057876 1057876 1057876 ...
## $ leave_NF : num 392403 NA 392403 392403 392403 ...
## $ leave_NM : num 392403 NA 392403 392403 392403 ...
## $ leave_JF : num 345607 NA 345607 345607 345607 ...
## [list output truncated]
ou= transpose(ou, NA, F, "Item", "var_name") #%>%
#ou %>% head
ou%>% str
## 'data.frame': 456 obs. of 8 variables:
## $ Item : chr "B_NF" "B_NM" "B_JF" "B_JM" ...
## $ Mean : num 521508 521508 0 0 0 ...
## $ StDev : num NA NA NA NA NA NA NA NA NA NA ...
## $ Min : num 521508 521508 0 0 0 ...
## $ Q1 : num 521508 521508 0 0 0 ...
## $ Median: num 521508 521508 0 0 0 ...
## $ Q3 : num 521508 521508 0 0 0 ...
## $ Max : num 521508 521508 0 0 0 ...
ou= separate(ou, Item, c("Item", "Group")) #%>%
#ou %>% head
ou%>% str
## 'data.frame': 456 obs. of 9 variables:
## $ Item : chr "B" "B" "B" "B" ...
## $ Group : chr "NF" "NM" "JF" "JM" ...
## $ Mean : num 521508 521508 0 0 0 ...
## $ StDev : num NA NA NA NA NA NA NA NA NA NA ...
## $ Min : num 521508 521508 0 0 0 ...
## $ Q1 : num 521508 521508 0 0 0 ...
## $ Median: num 521508 521508 0 0 0 ...
## $ Q3 : num 521508 521508 0 0 0 ...
## $ Max : num 521508 521508 0 0 0 ...
ou= mutate_all(ou,
function(x){
lab=c("B", "Gi", "Go", "D", "O", "C", "sum", "come", "leave", "diff", "new",
"NOftk", "PopGro", "TotNChg", "TotMort",
"QLwKg", "OftkLw", "QMeat", "QManu", "QHides", "QMilk", "QWool",
"CumDM", "ValOftk", "ValHerd", "TotVal",
"ValManu", "ValHides", "ValMilk", "ProdVal",
"FdCost", "LbCost", "HthCost", "CapCost", "IstCost", "TotExp", "GrsMrg",
"NF", "NM", "JF", "JM", "AF", "AM",
"Overall", "NCom", "JCom", "ACom", "FCom", "MCom")
name=c("Births", "Growth in", "Growth out", "Deaths", "Offtakes", "Culls", "Sum", "Inflow", "Outflow", "Difference", "Population",
"Num Offtake", "Cml Pop Growth", "Total Number Increase", "Total Mortality",
"Population Liveweight (kg)", "Offtake Liveweight (kg)", "Meat (kg)", "Manure", "Hides", "Milk", "Wool",
"Cml Dry Matter", "Value of Offtake", "Value of Herd Increase", "Value of Herd Increase plus Offtake",
"Value of Manure", "Value of Hides", "Value of Milk", "Total Production Value",
"Feed Cost", "Labour Cost", "Health Cost", "Capital Cost", "Infrastructure Cost", "Total Expenditure", "Gross Margin",
"Neonatal Female", "Neonatal Male", "Juvenile Female", "Juvenile Male", "Adult Female", "Adult Male",
"Overall", "Neonatal Combined", "Juvenile Combined", "Adult Combined", "Female Combined", "Male Combined")
for(i in 1:length(lab)) x[x == lab[[i]]] <- name[[i]];
x
}
) #%>%
ou %>% head
## Item Group Mean StDev Min
## 1 Births Neonatal Female 521508.426595024 <NA> 521508.426595024
## 2 Births Neonatal Male 521508.426595024 <NA> 521508.426595024
## 3 Births Juvenile Female 0 <NA> 0
## 4 Births Juvenile Male 0 <NA> 0
## 5 Births Adult Female 0 <NA> 0
## 6 Births Adult Male 0 <NA> 0
## Q1 Median Q3 Max
## 1 521508.426595024 521508.426595024 521508.426595024 521508.426595024
## 2 521508.426595024 521508.426595024 521508.426595024 521508.426595024
## 3 0 0 0 0
## 4 0 0 0 0
## 5 0 0 0 0
## 6 0 0 0 0
tail(ou)
## Item Group Mean StDev Min
## 451 Overall 24708806.5125079 <NA> 24708806.5125079
## 452 Neonatal Combined 4399853.88769091 <NA> 4399853.88769091
## 453 Juvenile Combined 3153248.77436824 <NA> 3153248.77436824
## 454 Adult Combined 17155703.8504488 <NA> 17155703.8504488
## 455 Female Combined 18246558.3486956 <NA> 18246558.3486956
## 456 Male Combined 6462248.16381227 <NA> 6462248.16381227
## Q1 Median Q3 Max
## 451 24708806.5125079 24708806.5125079 24708806.5125079 24708806.5125079
## 452 4399853.88769091 4399853.88769091 4399853.88769091 4399853.88769091
## 453 3153248.77436824 3153248.77436824 3153248.77436824 3153248.77436824
## 454 17155703.8504488 17155703.8504488 17155703.8504488 17155703.8504488
## 455 18246558.3486956 18246558.3486956 18246558.3486956 18246558.3486956
## 456 6462248.16381227 6462248.16381227 6462248.16381227 6462248.16381227
ou %>% str
## 'data.frame': 456 obs. of 9 variables:
## $ Item : chr "Births" "Births" "Births" "Births" ...
## $ Group : chr "Neonatal Female" "Neonatal Male" "Juvenile Female" "Juvenile Male" ...
## $ Mean : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ StDev : chr NA NA NA NA ...
## $ Min : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Q1 : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Median: chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Q3 : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Max : chr "521508.426595024" "521508.426595024" "0" "0" ...
ou= ou %>% .[ .$Item != "", ]
head(ou)
## Item Group Mean StDev Min
## 1 Births Neonatal Female 521508.426595024 <NA> 521508.426595024
## 2 Births Neonatal Male 521508.426595024 <NA> 521508.426595024
## 3 Births Juvenile Female 0 <NA> 0
## 4 Births Juvenile Male 0 <NA> 0
## 5 Births Adult Female 0 <NA> 0
## 6 Births Adult Male 0 <NA> 0
## Q1 Median Q3 Max
## 1 521508.426595024 521508.426595024 521508.426595024 521508.426595024
## 2 521508.426595024 521508.426595024 521508.426595024 521508.426595024
## 3 0 0 0 0
## 4 0 0 0 0
## 5 0 0 0 0
## 6 0 0 0 0
ou %>% tail
## Item Group Mean StDev Min
## 439 Gross Margin Overall 708177080.014107 <NA> 708177080.014107
## 440 Gross Margin Neonatal Combined 165452174.100016 <NA> 165452174.100016
## 441 Gross Margin Juvenile Combined 267394118.710613 <NA> 267394118.710613
## 442 Gross Margin Adult Combined 275330787.203478 <NA> 275330787.203478
## 443 Gross Margin Female Combined -137659148.307075 <NA> -137659148.307075
## 444 Gross Margin Male Combined 845836228.321182 <NA> 845836228.321182
## Q1 Median Q3 Max
## 439 708177080.014107 708177080.014107 708177080.014107 708177080.014107
## 440 165452174.100016 165452174.100016 165452174.100016 165452174.100016
## 441 267394118.710613 267394118.710613 267394118.710613 267394118.710613
## 442 275330787.203478 275330787.203478 275330787.203478 275330787.203478
## 443 -137659148.307075 -137659148.307075 -137659148.307075 -137659148.307075
## 444 845836228.321182 845836228.321182 845836228.321182 845836228.321182
str(ou)
## 'data.frame': 444 obs. of 9 variables:
## $ Item : chr "Births" "Births" "Births" "Births" ...
## $ Group : chr "Neonatal Female" "Neonatal Male" "Juvenile Female" "Juvenile Male" ...
## $ Mean : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ StDev : chr NA NA NA NA ...
## $ Min : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Q1 : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Median: chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Q3 : chr "521508.426595024" "521508.426595024" "0" "0" ...
## $ Max : chr "521508.426595024" "521508.426595024" "0" "0" ...
#}
applicable in https://github.com/stephen-wh-kwok/testing/blob/main/ahle_sr.R
# output =map(b_scen, f_par, c_scen[[1]], age, sex, cats, .g, .t, .p, .l, data,
# file, sheet, par_names, ignore, nruns, Num_months, baseline_scen, control_scen, ill_month)
#
# names(output) = baseline_scen
https://www.rdocumentation.org/packages/ParallelLogger/versions/3.1.0/topics/stopCluster https://www.rdocumentation.org/packages/foreach/versions/1.5.2/topics/registerDoSEQ
In this exercise cluster was made and parallel backend was registered. Although parallel computing was not used as nruns = 1, the cluster should be stopped and sequential backend should be registered.
#
stopCluster(cl)
registerDoSEQ()
#
# output
#}