### #
### #
### #
### # Purpose: Function related to the pre-processing steps
### # started: 2022-03-09 (skn)
### #
### # ##################################################################### ###
#' @title Pre-processing the input-parameter-file of ECOWEIGHT
#'
#' @description
#' The program package ECOWEIGHT (C Programs for Calculating Economic Weights in Livestock)
#' need input parameter files. This function processed different functions
#' to prepare the input parameter files.
#'
#' @param ps_sirebreed sire breed
#' @param ps_dambreed dam breed
#' @param ps_prodsystew production system build up as option in ECOWEIGHT
#' @param ps_marketchannel market channel
#' @param ps_path_directory2create path of the directory that will be created
#' @param ps_input_file_literature path to file with input coming from literature for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_par path to file with input as parameter for each scenanario for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_35 path to file with input for file 35 for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_36 path to file with input for file 36 for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_testedbulls path to file with input for ProdSyst 1 (tested bulls) for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_purchasedreplacementheifers path to file with input for ProdSyst 3 (purchased replacement heifers) for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_calving_statement path to file with statement based on calving for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_calving path to file with input coming from calving for the input-parameter-file for ECOWEIGHT
#' @param ps_start_date setting the start of the date to filter in the data
#' @param ps_end_date setting the end of the date to filter in the data
#' @param ps_input_file_progeny_flp_statement path to file with statement based on carcass for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_flp path to file with input coming from carcass for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_calf path to file with input coming from calf price data for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_flp_carcass_matrix_statement path to file with statement based on carcass frequency and price for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_price_cow path to file with price for cows
#' @param ps_input_file_price_bull path to file with price for bulls
#' @param ps_input_file_price_heifer path to file with price for heifers
#' @param ps_input_file_price_calf path to file with price for calf
#' @param ps_input_file_ped path to pedigree file
#' @param pb_log indicator whether logs should be produced
#' @param plogger logger object
#'
#' @export pre_process_ew_input
pre_process_ew_input <- function(ps_sirebreed,
ps_dambreed,
ps_prodsystew,
ps_marketchannel,
ps_path_directory2create,
ps_input_file_literature,
ps_input_file_par,
ps_input_file_35,
ps_input_file_36,
ps_input_file_testedbulls,
ps_input_file_purchasedreplacementheifers,
ps_input_file_calving_statement,
ps_input_file_calving,
ps_start_date,
ps_end_date,
ps_input_file_progeny_flp_statement,
ps_input_file_flp,
ps_input_file_calf,
ps_input_file_flp_carcass_matrix_statement,
ps_input_file_price_cow,
ps_input_file_price_bull,
ps_input_file_price_heifer,
ps_input_file_price_calf,
ps_input_file_ped,
pb_log,
plogger = NULL){
### # Setting the log-file
if(pb_log){
if(is.null(plogger)){
lgr <- get_qp4ewc_logger(ps_logfile = paste(format(Sys.time(), "%Y%m%d%H%M%S"),
'pre_process_ew_input.log', sep = "_"),
ps_level = 'INFO')
}else{
lgr <- plogger
}
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Starting function with parameters:\n * ps_sirebreed: ', ps_sirebreed, '\n',
' * ps_dambreed: ', ps_dambreed, '\n',
' * ps_prodsystew: ', ps_prodsystew, '\n',
' * ps_marketchannel: ', ps_marketchannel, '\n',
' * ps_path_directory2create: ', ps_path_directory2create, '\n',
' * ps_input_file_literature: ', ps_input_file_literature, '\n',
' * ps_input_file_par: ',ps_input_file_par,'\n',
' * ps_input_file_35: ',ps_input_file_35,'\n',
' * ps_input_file_36: ',ps_input_file_36,'\n',
' * ps_input_file_testedbulls: ',ps_input_file_testedbulls,'\n',
' * ps_input_file_purchasedreplacementheifers: ',ps_input_file_purchasedreplacementheifers,'\n',
' * ps_input_file_calving_statement: ',ps_input_file_calving_statement, '\n',
' * ps_input_file_calving: ', ps_input_file_calving, '\n',
' * ps_start_date: ',ps_start_date,'\n',
' * ps_end_date: ',ps_end_date,'\n',
' * ps_input_file_progeny_flp_statement: ',ps_input_file_progeny_flp_statement,'\n',
' * ps_input_file_flp: ',ps_input_file_flp, '\n',
' * ps_input_file_calf: ',ps_input_file_calf, '\n',
' * ps_input_file_flp_carcass_matrix_statement: ',ps_input_file_flp_carcass_matrix_statement,'\n',
' * ps_input_file_price_cow: ',ps_input_file_price_cow,'\n',
' * ps_input_file_price_bull: ',ps_input_file_price_bull,'\n',
' * ps_input_file_price_calf: ',ps_input_file_price_calf,'\n',
' * ps_input_file_price_heifer: ',ps_input_file_price_heifer,'\n'))
}
### # Major step 1 ### #
### # Create directory per scenario with input-parameter-file for ECOWEIGHT
create_directory_scenario(ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
ps_prodsystew = ps_prodsystew,
ps_marketchannel = ps_marketchannel,
ps_path_directory2create = ps_path_directory2create,
pb_log = pb_log,
plogger = lgr)
### # Get the constants
l_constants_ewbc_input_beefOnbeef <- get_constants_ewbc_input_beefOnbeef()
l_constants_ew_input_beefOndairy <- get_constants_ew_input_beefOndairy()
# ****************************************************************************
## ---- Literature ----
# ****************************************************************************
### # Major step 2 ### #
### # Read file with input from literature research for input-parameter-file of ECOWEIGHT
tbl_input_literature <- read_file_input(ps_input_file = ps_input_file_literature,
pb_log = pb_log,
plogger = lgr)
### # Update input-parameter-file coming from literature of ECOWEIGHT
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
if(ps_sirebreed == "AN"){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
l_constants_ewbc_input_beefOnbeef$file_av_price_breeding_bull),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull,
ps_value2update = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull_AN,
pb_log = pb_log,
plogger = lgr)
}else if(ps_sirebreed == "AU" || ps_sirebreed == "OB" || ps_sirebreed == "CH"){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_av_price_breeding_bull),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull,
ps_value2update = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull_AUCHOB,
pb_log = pb_log,
plogger = lgr)
}else if(ps_sirebreed == "LM"){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_av_price_breeding_bull),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull,
ps_value2update = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull_LM,
pb_log = pb_log,
plogger = lgr)
}else if(ps_sirebreed == "SI"){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_av_price_breeding_bull),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull,
ps_value2update = l_constants_ewbc_input_beefOnbeef$av_price_breeding_bull_SI,
pb_log = pb_log,
plogger = lgr)
}else{
qp4ewc_log_info(lgr, 'pre_process_ewbc_input',
paste0('Price for sire breed other than AN, AU, CH, LM, SI, OB are not available for EWBC, please check!'))
}
}
for(l in 1:nrow(tbl_input_literature)){
if(pb_log){
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Updating parameter with input coming from the literature file:\n * line number l: ', l, '\n'))
}
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
idx_col_input_file <- l_constants_ewbc_input_beefOnbeef$idx_col_input_file
idx_col_input <- l_constants_ewbc_input_beefOnbeef$idx_col_input
idx_col_input_value <- l_constants_ewbc_input_beefOnbeef$idx_col_input_value
}else{
idx_col_input_file <- l_constants_ew_input_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_ew_input_beefOndairy$idx_col_input
idx_col_input_value <- l_constants_ew_input_beefOndairy$idx_col_input_value
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_literature[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_literature[l,l_constants_ewbc_input_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_literature[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
}
### # Read file with input to set parameter per scenario for input-parameter-file of ECOWEIGHT
tbl_input_par <- read_file_input(ps_input_file = ps_input_file_par,
pb_log = pb_log,
plogger = lgr)
### # Update input-parameter-file coming from parameter of ECOWEIGHT
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
### # ps_prodsystew = 1: Closed purebred beef cow herd with pasture system producing males and females for replacement
if(ps_prodsystew == as.character(1)){
prodsyst <- l_constants_ewbc_input_beefOnbeef$prodsyst1
### # ps_prodsystew = 2: Closed crossbred cow herd with pasture system producing its own female replacement but buying the breeding bulls
}else if(ps_prodsystew == as.character(2)){
prodsyst <- l_constants_ewbc_input_beefOnbeef$prodsyst2
### # ps_prodsystew = 3: Open beef x dairy or beef x dual purpose crossbred cow herd with pasture system with purchase of cow and bull replacement
}else if(ps_prodsystew == as.character(3)){
prodsyst <- l_constants_ewbc_input_beefOnbeef$prodsyst3
}else{
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Production System is not 1 or 2 or 3 for EWBC, please use an other function as pre_process_ew_input()!'))
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$prodsyst,
ps_value2update = prodsyst,
pb_log = pb_log,
plogger = lgr)
### # Maturity type of progeny depends on ps_sirebreed
### # 1 = Early = AN
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
if(ps_sirebreed == "AN"){
maturitytype_status <- l_constants_ewbc_input_beefOnbeef$maturitytype_early
### # 2 = Medium = AU, OB
}else if(ps_sirebreed == "AU" || ps_sirebreed == "OB"){
maturitytype_status <- l_constants_ewbc_input_beefOnbeef$maturitytype_medium
### # 3 = Late = CH, LM, SI
}else if(ps_sirebreed == "CH" || ps_sirebreed == "LM" || ps_sirebreed == "SI"){
maturitytype_status <- l_constants_ewbc_input_beefOnbeef$maturitytype_late
}else{
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Sire breed is not AN, AU, CH, LM, SI, OB for EW, please check!'))
}
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$maturitytype,
ps_value2update = maturitytype_status,
pb_log = pb_log,
plogger = lgr)
}
### # Maturity type for production system 4 requires inputs for the purebred dairy breed and crossbred beef-on-dairy
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
if(ps_dambreed == "HO"){
maturitytype_status_purebred <- l_constants_ew_input_beefOndairy$maturitytype_early
if(ps_sirebreed == "AN") {
maturitytype_status_crossbred <- l_constants_ew_input_beefOndairy$maturitytype_early
} else if (ps_sirebreed == "LM" || ps_sirebreed == "SI" || ps_sirebreed == "OB") {
maturitytype_status_crossbred <- l_constants_ew_input_beefOndairy$maturitytype_medium
}
}
if(ps_dambreed == "BS"){
maturitytype_status_purebred <- l_constants_ew_input_beefOndairy$maturitytype_medium
if(ps_sirebreed == "AN") {
maturitytype_status_crossbred <- l_constants_ew_input_beefOndairy$maturitytype_early
} else if (ps_sirebreed == "LM" || ps_sirebreed == "SI" || ps_sirebreed == "OB") {
maturitytype_status_crossbred <- l_constants_ew_input_beefOndairy$maturitytype_medium
}
}
if(ps_dambreed == "OB" || ps_dambreed == "SI"){
maturitytype_status_purebred <- l_constants_ew_input_beefOndairy$maturitytype_medium
maturitytype_status_crossbred <- l_constants_ew_input_beefOndairy$maturitytype_medium
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ew_input_beefOndairy$file_par),
ps_statement2search = l_constants_ew_input_beefOndairy$maturitytype_purebred,
ps_value2update = maturitytype_status_purebred,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ew_input_beefOndairy$file_par),
ps_statement2search = l_constants_ew_input_beefOndairy$maturitytype_crossbred,
ps_value2update = maturitytype_status_crossbred,
pb_log = pb_log,
plogger = lgr)
}
### # Mating type for heifers or cows
### # 1 : Artificial insemination is used in the first oestrus within one mating period
if(ps_prodsystew == as.character(1) || ps_prodsystew == as.character(2)){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$matingtype_heifer,
ps_value2update = l_constants_ewbc_input_beefOnbeef$matingtype_AI,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$matingtype_cow,
ps_value2update = l_constants_ewbc_input_beefOnbeef$matingtype_AI,
pb_log = pb_log,
plogger = lgr)
### # 2 : Natural mating is used throughout.
}else if(ps_prodsystew == as.character(3)){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$matingtype_heifer,
ps_value2update = l_constants_ewbc_input_beefOnbeef$matingtype_NM,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$matingtype_cow,
ps_value2update = l_constants_ewbc_input_beefOnbeef$matingtype_NM,
pb_log = pb_log,
plogger = lgr)
}
tbl_input_35 <- read_file_input(ps_input_file = ps_input_file_35,
pb_log = pb_log,
plogger = lgr)
tbl_input_36 <- read_file_input(ps_input_file = ps_input_file_36,
pb_log = pb_log,
plogger = lgr)
### # Genetic standard deviations of the traits
### # are known for the direct and maternal components of the traits and given in INPUT35.TXT
if(ps_prodsystew == l_constants_ewbc_input_beefOnbeef$prodsyst2 || ps_prodsystew == l_constants_ewbc_input_beefOnbeef$prodsyst1){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$genStd,
ps_value2update = l_constants_ewbc_input_beefOnbeef$genStd_known_d_m,
pb_log = pb_log,
plogger = lgr)
for(l in 1:nrow(tbl_input_35)){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_35[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_35[l,l_constants_ewbc_input_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_35[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
}
### # are not differentiated between direct and maternal components and given in INPUT36.TXT
}else if(ps_prodsystew == l_constants_ewbc_input_beefOnbeef$prodsyst3){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_par),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$genStd,
ps_value2update = l_constants_ewbc_input_beefOnbeef$genStd_nodiff_d_m,
pb_log = pb_log,
plogger = lgr)
for(l in 1:nrow(tbl_input_36)){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_36[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_36[l,l_constants_ewbc_input_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_36[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
}
}
for(l in 1:nrow(tbl_input_par)){
if(pb_log){
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Updating parameter with input coming from the parameter file:\n * line number l: ', l, '\n'))
}
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
idx_col_input_file <- l_constants_ewbc_input_beefOnbeef$idx_col_input_file
idx_col_input <- l_constants_ewbc_input_beefOnbeef$idx_col_input
idx_col_input_value <- l_constants_ewbc_input_beefOnbeef$idx_col_input_value
}else{
idx_col_input_file <- l_constants_ew_input_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_ew_input_beefOndairy$idx_col_input
idx_col_input_value <- l_constants_ew_input_beefOndairy$idx_col_input_value
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_par[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_par[l,l_constants_ewbc_input_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_par[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
}
### Semen for AI including service, fraction performance tested-cows
if(ps_prodsystew == l_constants_ewbc_input_beefOnbeef$prodsyst2 || ps_prodsystew == l_constants_ewbc_input_beefOnbeef$prodsyst3){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$price_semenAI,
ps_value2update = l_constants_ewbc_input_beefOnbeef$price_semenAI_3,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$price_reinsem,
ps_value2update = l_constants_ewbc_input_beefOnbeef$price_semenAI_3,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$fraction_perftestedcows,
ps_value2update = l_constants_ewbc_input_beefOnbeef$fraction_perftestedcows_3,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input19),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$peak_milk,
ps_value2update = l_constants_ewbc_input_beefOnbeef$peak_milk_3,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$prop_female_fattening,
ps_value2update = l_constants_ewbc_input_beefOnbeef$prop_female_fattening_3,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input13),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$pregnant_heifer_sold,
ps_value2update = l_constants_ewbc_input_beefOnbeef$pregnant_heifer_sold_3,
pb_log = pb_log,
plogger = lgr)
}else if(ps_prodsystew == l_constants_ewbc_input_beefOnbeef$prodsyst1){
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$price_semenAI,
ps_value2update = l_constants_ewbc_input_beefOnbeef$price_semenAI_1,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$price_reinsem,
ps_value2update = l_constants_ewbc_input_beefOnbeef$price_semenAI_1,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$fraction_perftestedcows,
ps_value2update = l_constants_ewbc_input_beefOnbeef$fraction_perftestedcows_1,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input19),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$peak_milk,
ps_value2update = l_constants_ewbc_input_beefOnbeef$peak_milk_1,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input03),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$prop_female_fattening,
ps_value2update = l_constants_ewbc_input_beefOnbeef$prop_female_fattening_1,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ewbc_input_beefOnbeef$file_input13),
ps_statement2search = l_constants_ewbc_input_beefOnbeef$pregnant_heifer_sold,
ps_value2update = l_constants_ewbc_input_beefOnbeef$pregnant_heifer_sold_1,
pb_log = pb_log,
plogger = lgr)
}
### # If productionsystem 1 : Read file with input for tested bulls for input-parameter-file of ECOWEIGHT
if(ps_prodsystew == as.character(1)){
tbl_input_testedbull <- read_file_input(ps_input_file = ps_input_file_testedbulls,
pb_log = pb_log,
plogger = lgr)
for(l in 1:nrow(tbl_input_testedbull)){
if(pb_log){
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Updating parameter with input coming from the parameter file:\n * line number m: ', l, '\n'))
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_testedbull[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_testedbull[l,l_constants_ewbc_input_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_testedbull[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
}
}
### # If productionsystem 3 :Read file with input from purchased replacement heifers for input-parameter-file of ECOWEIGHT
if(ps_prodsystew == as.character(3)){
tbl_input_purchasedreplacementheifers <- read_file_input(ps_input_file = ps_input_file_purchasedreplacementheifers,
pb_log = pb_log,
plogger = lgr)
for(l in 1:nrow(tbl_input_purchasedreplacementheifers)){
if(pb_log){
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Updating parameter with input coming from the parameter file:\n * line number l: ', l, '\n'))
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_purchasedreplacementheifers[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_purchasedreplacementheifers[l,l_constants_ewbc_input_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_purchasedreplacementheifers[l,l_constants_ewbc_input_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
}
}
### # If production system is system 4 for beef-on-dairy, the utilisation of calves needs to be selection in PARAD.TXT:
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
if(ps_marketchannel == "Export"){
utilisation_calves_pure <- l_constants_ew_input_beefOndairy$utilisation_export
utilisation_calves_cross <- l_constants_ew_input_beefOndairy$utilisation_export
}else{
utilisation_calves_pure <- l_constants_ew_input_beefOndairy$utilisation_fattening
utilisation_calves_cross <- l_constants_ew_input_beefOndairy$utilisation_fattening
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ew_input_beefOndairy$file_par),
ps_statement2search = l_constants_ew_input_beefOndairy$utilisation_purebred,
ps_value2update = utilisation_calves_pure,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),l_constants_ew_input_beefOndairy$file_par),
ps_statement2search = l_constants_ew_input_beefOndairy$utilisation_crossbred,
ps_value2update = utilisation_calves_cross,
pb_log = pb_log,
plogger = lgr)
}
# ****************************************************************************
## ---- Calving ----
# ****************************************************************************
### # Major step 3 ### #
### # Pre-processing the calving data for input-parameter-file of ECOWEIGHT
pre_process_ew_input_calving(ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
ps_prodsystew = ps_prodsystew,
ps_marketchannel = ps_marketchannel,
ps_path_directory2create = ps_path_directory2create,
ps_input_file_calving_statement = ps_input_file_calving_statement,
ps_input_file_calving = ps_input_file_calving,
ps_start_calving_date = ps_start_date,
ps_end_calving_date = ps_end_date,
pb_log = pb_log,
plogger = lgr)
if(pb_log){
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Updating parameter with input coming from the calving file '))
}
# ****************************************************************************
## ---- Progeny data about weighing and slaughter ----
# ****************************************************************************
### # Major step 4 ### #
### # production system beef-on-beef
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
pre_process_ewbc_input_progeny_data_flp(ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
ps_prodsystew = ps_prodsystew,
ps_marketchannel = ps_marketchannel,
ps_path_directory2create = ps_path_directory2create,
ps_input_file_progeny_flp_statement = ps_input_file_progeny_flp_statement,
ps_input_file_flp_carcass_matrix_statement = ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp = ps_input_file_flp,
ps_start_flp_date = ps_start_date,
ps_end_flp_date = ps_end_date,
ps_input_file_ped = ps_input_file_ped,
pb_log = pb_log,
plogger = lgr)
}else{
### # production system beef-on-dairy
pre_process_ewdc_input_progeny_data_flp(ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
ps_prodsystew = ps_prodsystew,
ps_marketchannel = ps_marketchannel,
ps_path_directory2create = ps_path_directory2create,
ps_input_file_progeny_flp_statement = ps_input_file_progeny_flp_statement,
ps_input_file_flp_carcass_matrix_statement = ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp = ps_input_file_flp,
ps_input_file_calf = ps_input_file_calf,
ps_start_flp_date = ps_start_date,
ps_end_flp_date = ps_end_date,
ps_input_file_ped = ps_input_file_ped,
pb_log = pb_log,
plogger = lgr)
}
if(pb_log){
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Updating parameter with input coming from the progeny data flp file '))
}
# ****************************************************************************
## ---- Conformation & fat scores and price matrices ----
# ****************************************************************************
### # Major step 5 ### #
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
pre_process_ewbc_input_carcass_data_flp(ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
ps_prodsystew = ps_prodsystew,
ps_marketchannel = ps_marketchannel,
ps_path_directory2create = ps_path_directory2create,
ps_input_file_flp_carcass_matrix_statement = ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp = ps_input_file_flp,
ps_input_file_ped = ps_input_file_ped,
ps_start_flp_date = ps_start_date,
ps_end_flp_date = ps_end_date,
ps_input_file_price_cow = ps_input_file_price_cow,
ps_input_file_price_bull = ps_input_file_price_bull,
ps_input_file_price_heifer = ps_input_file_price_heifer,
pb_log = pb_log,
plogger = lgr)
}else{
### # production system beef-on-dairy
pre_process_ewdc_input_carcass_data_flp(ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
ps_prodsystew = ps_prodsystew,
ps_marketchannel = ps_marketchannel,
ps_path_directory2create = ps_path_directory2create,
ps_input_file_flp_carcass_matrix_statement = ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp = ps_input_file_flp,
ps_input_file_ped = ps_input_file_ped,
ps_start_flp_date = ps_start_date,
ps_end_flp_date = ps_end_date,
ps_input_file_price_cow = ps_input_file_price_cow,
ps_input_file_price_bull = ps_input_file_price_bull,
ps_input_file_price_heifer = ps_input_file_price_heifer,
ps_input_file_price_calf = ps_input_file_price_calf,
pb_log = pb_log,
plogger = lgr)
}
if(pb_log){
qp4ewc_log_info(lgr, 'pre_process_ew_input',
paste0('Updating parameter with input coming from the conformation & fat scores, prices '))
}
}
#' @title Pre-processing the calving data for input-parameter-file of ECOWEIGHT
#'
#' @description
#' The program package ECOWEIGHT (C Programs for Calculating Economic Weights in Livestock)
#' need input parameter files. This function processed different functions
#' to prepare the input parameter files based on calving data.
#'
#' @param ps_sirebreed sire breed
#' @param ps_dambreed dam breed
#' @param ps_prodsystew production system build up as option in ECOWEIGHT
#' @param ps_marketchannel market channel
#' @param ps_path_directory2create path of the directory that will be created
#' @param ps_input_file_calving_statement path to file with statement based on calving for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_calving path to file with input coming from calving for the input-parameter-file for ECOWEIGHT
#' @param ps_start_calving_date setting the start of the calving date to filter in the calving data
#' @param ps_end_calving_date setting the end of the calving date to filter in the calving data
#' @param pb_log indicator whether logs should be produced
#' @param plogger logger object
#'
#' @export pre_process_ew_input_calving
pre_process_ew_input_calving <- function(ps_sirebreed,
ps_dambreed,
ps_prodsystew,
ps_marketchannel,
ps_path_directory2create,
ps_input_file_calving_statement,
ps_input_file_calving,
ps_start_calving_date,
ps_end_calving_date,
pb_log,
plogger = NULL){
### # Setting the log-file
if(pb_log){
if(is.null(plogger)){
lgr <- get_qp4ewc_logger(ps_logfile = 'pre_process_ew_input_calving.log',
ps_level = 'INFO')
}else{
lgr <- plogger
}
qp4ewc_log_info(lgr, 'pre_process_ew_input_calving',
paste0('Starting function with parameters:\n * ps_sirebreed: ', ps_sirebreed, '\n',
' * ps_dambreed: ', ps_dambreed, '\n',
' * ps_prodsystew: ', ps_prodsystew, '\n',
' * ps_marketchannel: ', ps_marketchannel, '\n',
' * ps_path_directory2create: ', ps_path_directory2create, '\n',
' * ps_input_file_calving_statement: ',ps_input_file_calving_statement, '\n',
' * ps_input_file_calving: ', ps_input_file_calving, '\n',
' * ps_start_calving_date: ',ps_start_calving_date,'\n',
' * ps_end_calving_date: ',ps_end_calving_date,'\n'))
}
### # Read file with statement based on calving for input-parameter-file of ECOWEIGHT
tbl_input_statement_calving <- read_file_input(ps_input_file = ps_input_file_calving_statement,
pb_log = pb_log,
plogger = lgr)
### # Read file with calving data
tbl_calving <- read_file_input_calving(ps_input_file_calving = ps_input_file_calving,
ps_start_calving_date = ps_start_calving_date,
ps_end_calving_date = ps_end_calving_date,
pb_log = pb_log,
plogger = lgr)
### # Get the constants for calving
l_constants_ewbc_input_beefOnbeef <- get_constants_ewbc_input_beefOnbeef()
l_constants_ew_input_beefOndairy <- get_constants_ew_input_beefOndairy()
l_constants_calving_beefOnbeef <- get_constants_calving_beefOnbeef()
l_constants_calving_beefOndairy <- get_constants_calving_beefOndairy()
### # Write the mean and standarddeviation for the raw and transformed scale of calving score in a file
write_mean_sd_rawAndtransform_calvscore(ps_input_tbl_calving = tbl_calving,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
ps_prodsystew = ps_prodsystew,
ps_marketchannel = ps_marketchannel,
ps_path_directory2create = ps_path_directory2create,
pb_log = pb_log,
plogger = lgr)
# Update statement-calving-input from the data by calculating abortion rate
abortrate_prim <- calculate_abortion_rate(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
pb_log = pb_log,
plogger = lgr)
abortrate_multi <- calculate_abortion_rate(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
pb_log = pb_log,
plogger = lgr)
#updates depending on production system
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_abortrate <- l_constants_calving_beefOnbeef$idx_row_abortrate
first_element_vector <- l_constants_calving_beefOnbeef$first_element_vector
idx_col_input_value <- l_constants_calving_beefOnbeef$idx_col_input_value
idx_col_input <- l_constants_calving_beefOnbeef$idx_col_input
idx_col_input_file <- l_constants_calving_beefOnbeef$idx_col_input_file
second_element_vector <- l_constants_calving_beefOnbeef$second_element_vector
}
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_abortrate <- l_constants_calving_beefOndairy$idx_row_abortrate
first_element_vector <- l_constants_calving_beefOndairy$first_element_vector
idx_col_input_value <- l_constants_calving_beefOndairy$idx_col_input_value
idx_col_input <- l_constants_calving_beefOndairy$idx_col_input
idx_col_input_file <- l_constants_calving_beefOndairy$idx_col_input_file
second_element_vector <- l_constants_calving_beefOndairy$second_element_vector
}
# Check if abortrate_prim is zero. If it is the case, set a default value
if(abortrate_prim == 0){
abortrate_prim <- unlist(strsplit(tbl_input_statement_calving[idx_row_abortrate,idx_row_abortrate]$input_value,
split = " "))[first_element_vector]
}
# Check if abortrate_multi is zero. If it is the case, set a default value
if(abortrate_multi == 0){
abortrate_multi <- unlist(strsplit(tbl_input_statement_calving[idx_row_abortrate,idx_col_input_value]$input_value,
split = " "))[second_element_vector]
}
value2update_abortrate <- paste0(c(abortrate_prim, rep(abortrate_multi,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_abortrate,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_abortrate,idx_col_input],
ps_value2update = value2update_abortrate,
pb_log = pb_log,
plogger = lgr)
### # Update statement-calving-input from the data by calculating stillbirth rate
# stillbirth rate easy calving
stillbirthrate_prim_easy <- calculate_stillbirth_rate(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_statement_easycalving = TRUE,
pb_log = pb_log,
plogger = lgr)
stillbirthrate_multi_easy <- calculate_stillbirth_rate(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_statement_easycalving = TRUE,
pb_log = pb_log,
plogger = lgr)
#updates depending on production system
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_stillborn_easy <- l_constants_calving_beefOnbeef$idx_row_stillborn_easy
idx_col_input_value <- l_constants_calving_beefOnbeef$idx_col_input_value
first_element_vector <- l_constants_calving_beefOnbeef$first_element_vector
second_element_vector <- l_constants_calving_beefOnbeef$second_element_vector
idx_col_input_file <- l_constants_calving_beefOnbeef$idx_col_input_file
idx_col_input <- l_constants_calving_beefOnbeef$idx_col_input
idx_row_stillborn_diff <- l_constants_calving_beefOnbeef$idx_row_stillborn_diff
}
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_stillborn_easy <- l_constants_calving_beefOndairy$idx_row_stillborn_easy
idx_col_input_value <- l_constants_calving_beefOndairy$idx_col_input_value
first_element_vector <- l_constants_calving_beefOndairy$first_element_vector
second_element_vector <- l_constants_calving_beefOndairy$second_element_vector
idx_col_input_file <- l_constants_calving_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_calving_beefOndairy$idx_col_input
idx_row_stillborn_diff <- l_constants_calving_beefOndairy$idx_row_stillborn_diff
}
# Check if stillbirthrate_prim_easy is zero. If it is the case, set a default value
if(stillbirthrate_prim_easy == 0){
stillbirthrate_prim_easy <- unlist(strsplit(tbl_input_statement_calving[idx_row_stillborn_easy,idx_col_input_value]$input_value,
split = " "))[first_element_vector]
}
# Check if stillbirthrate_multi_easy is zero. If it is the case, set a default value
if(stillbirthrate_multi_easy == 0){
stillbirthrate_multi_easy <- unlist(strsplit(tbl_input_statement_calving[idx_row_stillborn_easy,idx_col_input_value]$input_value,
split = " "))[second_element_vector]
}
value2update_stillbirthrate_easy <- paste0(c(stillbirthrate_prim_easy, rep(stillbirthrate_multi_easy,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_stillborn_easy,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_stillborn_easy,idx_col_input],
ps_value2update = value2update_stillbirthrate_easy,
pb_log = pb_log,
plogger = lgr)
# stillbirth rate difficult calving
stillbirthrate_prim_difficult <- calculate_stillbirth_rate(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_statement_easycalving = FALSE,
pb_log = pb_log,
plogger = lgr)
stillbirthrate_multi_difficult <- calculate_stillbirth_rate(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_statement_easycalving = FALSE,
pb_log = pb_log,
plogger = lgr)
# Check if stillbirthrate_prim_difficult is zero. If it is the case, set a default value
if(stillbirthrate_prim_difficult == 0){
stillbirthrate_prim_difficult <- unlist(strsplit(tbl_input_statement_calving[idx_row_stillborn_diff,idx_col_input_value]$input_value,
split = " "))[first_element_vector]
}
# Check if stillbirthrate_multi_difficult is zero. If it is the case, set a default value
if(stillbirthrate_multi_difficult == 0){
stillbirthrate_multi_difficult <- unlist(strsplit(tbl_input_statement_calving[idx_row_stillborn_diff,idx_col_input_value]$input_value,
split = " "))[second_element_vector]
}
value2update_stillbirthrate_difficult <- paste0(c(stillbirthrate_prim_difficult, rep(stillbirthrate_multi_difficult,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_stillborn_diff,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_stillborn_diff,idx_col_input],
ps_value2update = value2update_stillbirthrate_difficult,
pb_log = pb_log,
plogger = lgr)
### # Update calving score parameter inputs
#updates depending on production system
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_class_calving <- l_constants_calving_beefOnbeef$idx_row_class_calving
idx_col_input_file <- l_constants_calving_beefOnbeef$idx_col_input_file
idx_col_input <- l_constants_calving_beefOnbeef$idx_col_input
n_class_calving <- l_constants_calving_beefOnbeef$n_class_calving
idx_row_class_dystocia <- l_constants_calving_beefOnbeef$idx_row_class_dystocia
class_dystocia <- l_constants_calving_beefOndairy$class_dystocia
}
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_class_calving <- l_constants_calving_beefOndairy$idx_row_class_calving
idx_col_input_file <- l_constants_calving_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_calving_beefOndairy$idx_col_input
n_class_calving <- l_constants_calving_beefOndairy$n_class_calving
idx_row_class_dystocia <- l_constants_calving_beefOndairy$idx_row_class_dystocia
class_dystocia <- l_constants_calving_beefOndairy$class_dystocia
}
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_class_calving,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_class_calving,idx_col_input],
ps_value2update = n_class_calving,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_class_dystocia,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_class_dystocia,idx_col_input],
ps_value2update = class_dystocia,
pb_log = pb_log,
plogger = lgr)
### # Update calving score proportions
#updates depending on production system
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
sex_female <- l_constants_calving_beefOnbeef$sex_female
sex_male <- l_constants_calving_beefOnbeef$sex_male
calvingscore2 <- l_constants_calving_beefOnbeef$calvingscore2
calvingscore3 <- l_constants_calving_beefOnbeef$calvingscore3
calvingscore4 <- l_constants_calving_beefOnbeef$calvingscore4
idx_row_calvingscore2_female <- l_constants_calving_beefOnbeef$idx_row_calvingscore2_female
idx_row_calvingscore3_female <- l_constants_calving_beefOnbeef$idx_row_calvingscore3_female
idx_row_calvingscore4_female <- l_constants_calving_beefOnbeef$idx_row_calvingscore4_female
idx_row_calvingscore2_male <- l_constants_calving_beefOnbeef$idx_row_calvingscore2_male
idx_row_calvingscore3_male <- l_constants_calving_beefOnbeef$idx_row_calvingscore3_male
idx_row_calvingscore4_male <- l_constants_calving_beefOnbeef$idx_row_calvingscore4_male
idx_col_input_file <- l_constants_calving_beefOnbeef$idx_col_input_file
idx_col_input <- l_constants_calving_beefOnbeef$idx_col_input
}
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
sex_female <- l_constants_calving_beefOndairy$sex_female
sex_male <- l_constants_calving_beefOndairy$sex_male
calvingscore2 <- l_constants_calving_beefOndairy$calvingscore2
calvingscore3 <- l_constants_calving_beefOndairy$calvingscore3
calvingscore4 <- l_constants_calving_beefOndairy$calvingscore4
idx_row_calvingscore2_female <- l_constants_calving_beefOndairy$idx_row_calvingscore2_female
idx_row_calvingscore3_female <- l_constants_calving_beefOndairy$idx_row_calvingscore3_female
idx_row_calvingscore4_female <- l_constants_calving_beefOndairy$idx_row_calvingscore4_female
idx_row_calvingscore2_male <- l_constants_calving_beefOndairy$idx_row_calvingscore2_male
idx_row_calvingscore3_male <- l_constants_calving_beefOndairy$idx_row_calvingscore3_male
idx_row_calvingscore4_male <- l_constants_calving_beefOndairy$idx_row_calvingscore4_male
idx_col_input_file <- l_constants_calving_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_calving_beefOndairy$idx_col_input
}
calvingscore_prop_prim_F_2 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_female,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_F_3 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_female,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_F_4 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_female,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_F_2 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_female,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_F_3 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_female,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_F_4 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_female,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_M_2 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_male,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_M_3 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_male,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_M_4 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_male,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_M_2 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_male,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_M_3 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_male,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_M_4 <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_male,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_sirebreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_F_2 <- paste0(c(calvingscore_prop_prim_F_2, rep(calvingscore_prop_multi_F_2,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore2_female,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore2_female,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_F_2,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_F_3 <- paste0(c(calvingscore_prop_prim_F_3, rep(calvingscore_prop_multi_F_3,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore3_female,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore3_female,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_F_3,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_F_4 <- paste0(c(calvingscore_prop_prim_F_4, rep(calvingscore_prop_multi_F_4,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore4_female,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore4_female,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_F_4,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_M_2 <- paste0(c(calvingscore_prop_prim_M_2, rep(calvingscore_prop_multi_M_2,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore2_male,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore2_male,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_M_2,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_M_3 <- paste0(c(calvingscore_prop_prim_M_3, rep(calvingscore_prop_multi_M_3,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore3_male,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore3_male,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_M_3,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_M_4 <- paste0(c(calvingscore_prop_prim_M_4, rep(calvingscore_prop_multi_M_4,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore4_male,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore4_male,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_M_4,
pb_log = pb_log,
plogger = lgr)
# Beef-on-dairy requires the same information also for purebred dairy animals ps_sirebreed = s_dambreed
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
sex_female <- l_constants_calving_beefOndairy$sex_female
sex_male <- l_constants_calving_beefOndairy$sex_male
calvingscore2 <- l_constants_calving_beefOndairy$calvingscore2
calvingscore3 <- l_constants_calving_beefOndairy$calvingscore3
calvingscore4 <- l_constants_calving_beefOndairy$calvingscore4
idx_row_calvingscore2_female_pure <- l_constants_calving_beefOndairy$idx_row_calvingscore2_female_pure
idx_row_calvingscore3_female_pure <- l_constants_calving_beefOndairy$idx_row_calvingscore3_female_pure
idx_row_calvingscore4_female_pure <- l_constants_calving_beefOndairy$idx_row_calvingscore4_female_pure
idx_row_calvingscore2_male_pure <- l_constants_calving_beefOndairy$idx_row_calvingscore2_male_pure
idx_row_calvingscore3_male_pure <- l_constants_calving_beefOndairy$idx_row_calvingscore3_male_pure
idx_row_calvingscore4_male_pure <- l_constants_calving_beefOndairy$idx_row_calvingscore4_male_pure
idx_col_input_file <- l_constants_calving_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_calving_beefOndairy$idx_col_input
calvingscore_prop_prim_F_2_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_female,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_F_3_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_female,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_F_4_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_female,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_F_2_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_female,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_F_3_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_female,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_F_4_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_female,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_M_2_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_male,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_M_3_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_male,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_prim_M_4_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_sex = sex_male,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_M_2_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_male,
ps_calvingscore = calvingscore2,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_M_3_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_male,
ps_calvingscore = calvingscore3,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
calvingscore_prop_multi_M_4_pure <- calculate_calvingscore_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_sex = sex_male,
ps_calvingscore = calvingscore4,
ps_sirebreed = ps_dambreed,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_F_2_pure <- paste0(c(calvingscore_prop_prim_F_2_pure, rep(calvingscore_prop_multi_F_2_pure,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore2_female_pure,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore2_female_pure,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_F_2_pure,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_F_3_pure <- paste0(c(calvingscore_prop_prim_F_3_pure, rep(calvingscore_prop_multi_F_3_pure,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore3_female_pure,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore3_female_pure,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_F_3_pure,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_F_4_pure <- paste0(c(calvingscore_prop_prim_F_4_pure, rep(calvingscore_prop_multi_F_4_pure,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore4_female_pure,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore4_female_pure,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_F_4_pure,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_M_2_pure <- paste0(c(calvingscore_prop_prim_M_2_pure, rep(calvingscore_prop_multi_M_2_pure,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore2_male_pure,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore2_male_pure,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_M_2_pure,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_M_3_pure <- paste0(c(calvingscore_prop_prim_M_3_pure, rep(calvingscore_prop_multi_M_3_pure,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore3_male_pure,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore3_male_pure,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_M_3_pure,
pb_log = pb_log,
plogger = lgr)
value2update_calvingscoreprop_prim_M_4_pure <- paste0(c(calvingscore_prop_prim_M_4_pure, rep(calvingscore_prop_multi_M_4_pure,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calvingscore4_male_pure,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calvingscore4_male_pure,idx_col_input],
ps_value2update = value2update_calvingscoreprop_prim_M_4_pure,
pb_log = pb_log,
plogger = lgr)
}
### # Update proportion of calves died to 24 hours
#updates depending on production system
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_calfdied48h_easy <- l_constants_calving_beefOnbeef$idx_row_calfdied48h_easy
idx_col_input_value <- l_constants_calving_beefOnbeef$idx_col_input_value
first_element_vector <- l_constants_calving_beefOnbeef$first_element_vector
second_element_vector <- l_constants_calving_beefOnbeef$second_element_vector
idx_col_input_file <- l_constants_calving_beefOnbeef$idx_col_input_file
idx_col_input <- l_constants_calving_beefOnbeef$idx_col_input
idx_row_calfdied48h_dystocia <- l_constants_calving_beefOnbeef$idx_row_calfdied48h_dystocia
}
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
idx_row_calfdied48h_easy <- l_constants_calving_beefOndairy$idx_row_calfdied48h_easy
idx_col_input_value <- l_constants_calving_beefOndairy$idx_col_input_value
first_element_vector <- l_constants_calving_beefOndairy$first_element_vector
second_element_vector <- l_constants_calving_beefOndairy$second_element_vector
idx_col_input_file <- l_constants_calving_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_calving_beefOndairy$idx_col_input
idx_row_calfdied48h_dystocia <- l_constants_calving_beefOndairy$idx_row_calfdied48h_dystocia
}
calvingdied24h_prop_prim_easy <- calculate_calvesdied24h_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_statement_easycalving = TRUE,
pb_log = pb_log,
plogger = lgr)
calvingdied24h_prop_multi_easy <- calculate_calvesdied24h_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_statement_easycalving = TRUE,
pb_log = pb_log,
plogger = lgr)
# Check if calvingdied24h_prop_prim_easy is zero. If it is the case, set a default value
if(calvingdied24h_prop_prim_easy == 0){
calvingdied24h_prop_prim_easy <- unlist(strsplit(tbl_input_statement_calving[idx_row_calfdied48h_easy,idx_col_input_value]$input_value,
split = " "))[first_element_vector]
}
# Check if calvingdied24h_prop_multi_easy is zero. If it is the case, set a default value
if(calvingdied24h_prop_multi_easy == 0){
calvingdied24h_prop_multi_easy <- unlist(strsplit(tbl_input_statement_calving[idx_row_calfdied48h_easy,idx_col_input_value]$input_value,
split = " "))[second_element_vector]
}
value2update_calvingdied24hprop_easy <- paste0(c(calvingdied24h_prop_prim_easy, rep(calvingdied24h_prop_multi_easy,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calfdied48h_easy,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calfdied48h_easy,idx_col_input],
ps_value2update = value2update_calvingdied24hprop_easy,
pb_log = pb_log,
plogger = lgr)
calvingdied24h_prop_prim_difficult <- calculate_calvesdied24h_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = TRUE,
ps_statement_easycalving = FALSE,
pb_log = pb_log,
plogger = lgr)
calvingdied24h_prop_multi_difficult <- calculate_calvesdied24h_proportion(ps_input_calving_tibble = tbl_calving,
ps_statement_firstlactation = FALSE,
ps_statement_easycalving = FALSE,
pb_log = pb_log,
plogger = lgr)
# Check if calvingdied24h_prop_prim_difficult is zero. If it is the case, set a default value
if(calvingdied24h_prop_prim_difficult == 0){
calvingdied24h_prop_prim_difficult <- unlist(strsplit(tbl_input_statement_calving[idx_row_calfdied48h_dystocia,idx_col_input_value]$input_value,
split = " "))[first_element_vector]
}
# Check if calvingdied24h_prop_multi_difficult is zero. If it is the case, set a default value
if(calvingdied24h_prop_multi_difficult == 0){
calvingdied24h_prop_multi_difficult <- unlist(strsplit(tbl_input_statement_calving[idx_row_calfdied48h_dystocia,idx_col_input_value]$input_value,
split = " "))[second_element_vector]
}
value2update_calvingdied24hprop_difficult <- paste0(c(calvingdied24h_prop_prim_difficult, rep(calvingdied24h_prop_multi_difficult,9)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[idx_row_calfdied48h_dystocia,idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[idx_row_calfdied48h_dystocia,idx_col_input],
ps_value2update = value2update_calvingdied24hprop_difficult,
pb_log = pb_log,
plogger = lgr)
# Update Losses of calves from 48 hours after calving
# Only required for beef-on-beef
if(ps_prodsystew != l_constants_ew_input_beefOndairy$prodsyst4){
calf_loss <- calculate_calvesdiedafter24h_proportion(ps_input_calving_tibble = tbl_calving,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[l_constants_calving_beefOnbeef$idx_row_calfloss,l_constants_calving_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[l_constants_calving_beefOnbeef$idx_row_calfloss,l_constants_calving_beefOnbeef$idx_col_input],
ps_value2update = calf_loss,
pb_log = pb_log,
plogger = lgr)
# Update proportion of cows artificially inseminated in first oestrus
dystocia_AI <- paste0(c(rep(1,10)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[l_constants_calving_beefOnbeef$idx_row_AI_dystocia,l_constants_calving_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[l_constants_calving_beefOnbeef$idx_row_AI_dystocia,l_constants_calving_beefOnbeef$idx_col_input],
ps_value2update = dystocia_AI,
pb_log = pb_log,
plogger = lgr)
easy_AI <- paste0(c(rep(1,10)),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_calving[l_constants_calving_beefOnbeef$idx_row_AI_nodystocia,l_constants_calving_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_calving[l_constants_calving_beefOnbeef$idx_row_AI_nodystocia,l_constants_calving_beefOnbeef$idx_col_input],
ps_value2update = easy_AI,
pb_log = pb_log,
plogger = lgr)
}
}
#' @title Pre-processing the progeny data flp for beef-on-beef input-parameter-file of ECOWEIGHT
#'
#' @description
#' The program package ECOWEIGHT (C Programs for Calculating Economic Weights in Livestock)
#' need input parameter files. This function processed different functions
#' to prepare the input parameter files based on progeny flp data.
#'
#' @param ps_sirebreed sire breed
#' @param ps_dambreed dam breed
#' @param ps_prodsystew production system build up as option in ECOWEIGHT
#' @param ps_marketchannel market channel
#' @param ps_path_directory2create path of the directory that will be created
#' @param ps_input_file_progeny_flp_statement path to file with statement based on calving for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_flp_carcass_matrix_statement path to file with statement regarding carcass prices
#' @param ps_input_file_flp path to file with input coming from calving for the input-parameter-file for ECOWEIGHT
#' @param ps_start_flp_date setting the start of the slaughter date to filter in the slaughter data
#' @param ps_end_flp_date setting the end of the slaughter date to filter in the slaughter data
#' @param ps_input_file_ped path to file with pedigree input
#' @param pb_log indicator whether logs should be produced
#' @param plogger logger object
#'
#' @importFrom dplyr %>%
#' @import dplyr
#'
#' @export pre_process_ewbc_input_progeny_data_flp
pre_process_ewbc_input_progeny_data_flp <- function(ps_sirebreed,
ps_dambreed,
ps_prodsystew,
ps_marketchannel,
ps_path_directory2create,
ps_input_file_progeny_flp_statement,
ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp,
ps_start_flp_date,
ps_end_flp_date,
ps_input_file_ped,
pb_log,
plogger = NULL){
### # Setting the log-file
if(pb_log){
if(is.null(plogger)){
lgr <- get_qp4ewc_logger(ps_logfile = 'pre_process_ew_input_progeny_data_flp.log',
ps_level = 'INFO')
}else{
lgr <- plogger
}
qp4ewc_log_info(lgr, 'pre_process_ew_input_progeny_data_flp',
paste0('Starting function with parameters:\n * ps_sirebreed: ', ps_sirebreed, '\n',
' * ps_dambreed: ', ps_dambreed, '\n',
' * ps_prodsystew: ', ps_prodsystew, '\n',
' * ps_marketchannel: ', ps_marketchannel, '\n',
' * ps_path_directory2create: ', ps_path_directory2create, '\n',
' * ps_input_file_progeny_flp_statement: ',ps_input_file_progeny_flp_statement, '\n',
' * ps_input_file_flp: ', ps_input_file_flp, '\n',
' * ps_start_flp_date: ',ps_start_flp_date,'\n',
' * ps_end_flp_date: ',ps_end_flp_date,'\n',
' * ps_input_file_ped: ',ps_input_file_ped))
}
### # Read file with statement based on progeny data flp for input-parameter-file of ECOWEIGHT
tbl_input_statement_flp <- read_file_input(ps_input_file = ps_input_file_progeny_flp_statement,
pb_log = pb_log,
plogger = lgr)
### # Read file with statement based on carcass prices for input-parameter-file of ECOWEIGHT
tbl_input_statement_flp_carcass <- read_file_input(ps_input_file = ps_input_file_flp_carcass_matrix_statement,
pb_log = pb_log,
plogger = lgr)
### # Read file with progeny-flp data
tbl_flp <- read_file_input_flp(ps_input_file_flp,
ps_start_flp_date,
ps_end_flp_date,
pb_log = pb_log,
plogger = lgr)
### # Get the constants
l_constants <- get_constants()
l_constants_progeny_beefOnbeef <- get_constants_progeny_beefOnbeef()
l_constants_liveweight_deductions_beefOnbeef <- get_constants_liveweight_deductions_beefOnbeef()
### # Read pedigree file
tbl_ped <- read_file_input_ped(ps_input_file_ped,
pb_log = pb_log,
plogger = lgr)
### # Merge progeny-flp data and pedigree files
tbl_merged_data <- tbl_flp %>% dplyr::inner_join(tbl_ped, by = c("NakoTVD" = "TVDid"))
### # Create different tibble if purebred or crossbred
### # purebred beef
if(ps_sirebreed == ps_dambreed){
tbl_progeny_data_flp <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_sirebreed) %>% dplyr::filter(Mutter_RasseCode == ps_sirebreed)
}else{
### # crossbred beef
tbl_progeny_data_flp <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_sirebreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
}
# ****************************************************************************
## ---- Natura-Beef ----
# ****************************************************************************
if(ps_marketchannel == "Natura-Beef"){
# Update statement-progeny-flp-input from the data by calculating mean birth weight
female_bw <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = female_bw,
pb_log = pb_log,
plogger = lgr)
male_bw <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = male_bw,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mean live weight at slaughter
livewt_slaughter_f <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_heifer_slaughter,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_heifer_slaughter,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = livewt_slaughter_f,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_bull_slaughter,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_bull_slaughter,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = livewt_slaughter_m,
pb_log = pb_log,
plogger = lgr)
slaughter_m <- livewt_slaughter_m*(l_constants$dressingpercentage_male)
slaughter_f <- livewt_slaughter_f*(l_constants$dressingpercentage_female)
# Calculate weaning weight, weaning age, slaughter age
weaningwt_f <- calculate_mean_weaningweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
weaningwt_m <- calculate_mean_weaningweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
weaningage_f <- calculate_mean_weaningage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
weaningage_m <- calculate_mean_weaningage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_f <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$Natura_Beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
# Calculate daily gain
dailygain_f <- calculate_dailygain(pv_mean_slaughterage = slaughterage_f,
pv_mean_weaningage = weaningage_f,
pv_mean_livewt_atslaughter = livewt_slaughter_f,
pv_mean_weaningwt = weaningwt_f,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_heifer,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_heifer,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = dailygain_f,
pb_log = pb_log,
plogger = lgr)
dailygain_m <- calculate_dailygain(pv_mean_slaughterage = slaughterage_m,
pv_mean_weaningage = weaningage_m,
pv_mean_livewt_atslaughter = livewt_slaughter_m,
pv_mean_weaningwt = weaningwt_m,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_bull,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_bull,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = dailygain_m,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating extrapolate weaning weight
# extrapolated to 300 days
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_1weighing,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_1weighing,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = l_constants_progeny_beefOnbeef$extrapol_300d,
pb_log = pb_log,
plogger = lgr)
weight_300d_f <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_f,
pv_daily_gain = dailygain_f,
pv_mean_weaningwt = weaningwt_f,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_300d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_300d_f,
pb_log = pb_log,
plogger = lgr)
weight_300d_m <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_m,
pv_daily_gain = dailygain_m,
pv_mean_weaningwt = weaningwt_m,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_300d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_300d_m,
pb_log = pb_log,
plogger = lgr)
# extrapolated to 302 days
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_2weighing,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_2weighing,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = l_constants_progeny_beefOnbeef$extrapol_302d,
pb_log = pb_log,
plogger = lgr)
# extrapolated to 304 days
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_3weighing,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_3weighing,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = l_constants_progeny_beefOnbeef$extrapol_304d,
pb_log = pb_log,
plogger = lgr)
# weaning weight at 302 days
weight_302d_f <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_f,
pv_daily_gain = dailygain_f,
pv_mean_weaningwt = weaningwt_f,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_302d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_302d_f,
pb_log = pb_log,
plogger = lgr)
weight_302d_m <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_m,
pv_daily_gain = dailygain_m,
pv_mean_weaningwt = weaningwt_m,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_302d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_302d_m,
pb_log = pb_log,
plogger = lgr)
# weaning weight at 304 days
weight_304d_f <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_f,
pv_daily_gain = dailygain_f,
pv_mean_weaningwt = weaningwt_f,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_304d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_304d_f,
pb_log = pb_log,
plogger = lgr)
weight_304d_m <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_m,
pv_daily_gain = dailygain_m,
pv_mean_weaningwt = weaningwt_m,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_304d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_304d_m,
pb_log = pb_log,
plogger = lgr)
### # deductions for carcass weight:
carcass_price_bull <- calculate_carcass_price(ps_tbl_input_statement_carcass = tbl_input_statement_flp_carcass,
ps_sex = l_constants$sex_male,
ps_liveweight = slaughter_m,
ps_marketchannel = ps_marketchannel,
pb_log = pb_log,
plogger = lgr)
carcass_price_heifer <- calculate_carcass_price(ps_tbl_input_statement_carcass = tbl_input_statement_flp_carcass,
ps_sex = l_constants$sex_female,
ps_liveweight = slaughter_f,
ps_marketchannel = ps_marketchannel,
pb_log = pb_log,
plogger = lgr)
carcass_price <- tibble(carcass_price_bull, carcass_price_heifer)
write.csv(carcass_price, file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel, collapse =""),"carcass_prices.csv"), row.names = FALSE)
}
# ****************************************************************************
## ---- SwissPrimBeef ----
# ****************************************************************************
if(ps_marketchannel == "SwissPrimBeef"){
# Update statement-progeny-flp-input from the data by calculating mean birth weight
female_bw <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = female_bw,
pb_log = pb_log,
plogger = lgr)
male_bw <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bw_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = male_bw,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mean weaning weight
weaningwt_f <- calculate_mean_weaningweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weaningwt_f,
pb_log = pb_log,
plogger = lgr)
weaningwt_m <- calculate_mean_weaningweight(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_1weighing_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weaningwt_m,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mean weaning age
weaningage_f <- calculate_mean_weaningage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
weaningage_m <- calculate_mean_weaningage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
weaningage_average <- round(as.numeric(weaningage_f+weaningage_m)/2,4)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_1weighing,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_1weighing,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weaningage_average,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mean live weight at slaughter
livewt_slaughter_f <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_heifer_slaughter,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_heifer_slaughter,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = livewt_slaughter_f,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_bull_slaughter,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_lw_bull_slaughter,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = livewt_slaughter_m,
pb_log = pb_log,
plogger = lgr)
# Calculate slaughter age
slaughterage_f <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_female,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_progeny_data_flp,
ps_sex = l_constants_progeny_beefOnbeef$sex_male,
ps_marketing_channel = l_constants_progeny_beefOnbeef$SwissPrimBeef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
# Calculate and update daily gain
dailygain_f <- calculate_dailygain(pv_mean_slaughterage = slaughterage_f,
pv_mean_weaningage = weaningage_f,
pv_mean_livewt_atslaughter = livewt_slaughter_f,
pv_mean_weaningwt = weaningwt_f,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_heifer,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_heifer,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = dailygain_f,
pb_log = pb_log,
plogger = lgr)
dailygain_m <- calculate_dailygain(pv_mean_slaughterage = slaughterage_m,
pv_mean_weaningage = weaningage_m,
pv_mean_livewt_atslaughter = livewt_slaughter_m,
pv_mean_weaningwt = weaningwt_m,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_bull,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_dg_bull,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = dailygain_m,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating extrapolate weaning weight
# extrapolated to 300 days
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_2weighing,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_2weighing,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = l_constants_progeny_beefOnbeef$extrapol_300d,
pb_log = pb_log,
plogger = lgr)
# extrapolated to 400 days
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_3weighing,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_age_3weighing,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = l_constants_progeny_beefOnbeef$extrapol_400d,
pb_log = pb_log,
plogger = lgr)
# weaning weight at 300 days
weight_300d_f <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_f,
pv_daily_gain = dailygain_f,
pv_mean_weaningwt = weaningwt_f,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_300d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_300d_f,
pb_log = pb_log,
plogger = lgr)
weight_300d_m <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_m,
pv_daily_gain = dailygain_m,
pv_mean_weaningwt = weaningwt_m,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_300d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_2weighing_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_300d_m,
pb_log = pb_log,
plogger = lgr)
# weaning weight at 400 days
weight_400d_f <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_f,
pv_daily_gain = dailygain_f,
pv_mean_weaningwt = weaningwt_f,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_400d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_female,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_female,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_400d_f,
pb_log = pb_log,
plogger = lgr)
weight_400d_m <- calculate_extrapolated_weaningweight(pv_mean_weaningage = weaningage_m,
pv_daily_gain = dailygain_m,
pv_mean_weaningwt = weaningwt_m,
pv_t_days = l_constants_progeny_beefOnbeef$extrapol_400d,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_male,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_3weighing_male,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = weight_400d_m,
pb_log = pb_log,
plogger = lgr)
}
if (pb_log)
qp4ewc_log_info(lgr, 'pre_process_ewbc_input_progeny_data_flp',
" * Enter computations after marketchanel ...")
# Update statement-progeny-flp-input from the data by calculating cow weight after second calving
second_calving_wt <- calculate_cow_liveweight(ps_input_flp_tibble = tbl_merged_data,
ps_first_calvingweight = FALSE,
ps_second_calvingweight = TRUE,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_cowwt_2calving,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_cowwt_2calving,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = second_calving_wt,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_wtcow_2calving,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_wtcow_2calving,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = second_calving_wt,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mature cow weight
mature_weight_cow <- calculate_cow_liveweight(ps_input_flp_tibble = tbl_merged_data,
ps_first_calvingweight = FALSE,
ps_second_calvingweight = FALSE,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_cowwt_3calving,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_cowwt_3calving,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = mature_weight_cow,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mature bull weight
bull_mature_weight <- calculate_bull_liveweight(ps_input_flp_tibble = tbl_merged_data,
ps_sirebreed = ps_sirebreed,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bullwt_mature,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_bullwt_mature,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = bull_mature_weight,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating cow weight after 1st calving
first_calving_wt <- calculate_cow_liveweight(ps_input_flp_tibble = tbl_merged_data,
ps_first_calvingweight = TRUE,
ps_second_calvingweight = FALSE,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_cowwt_1calving,l_constants_progeny_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOnbeef$idx_row_cowwt_1calving,l_constants_progeny_beefOnbeef$idx_col_input],
ps_value2update = first_calving_wt,
pb_log = pb_log,
plogger = lgr)
}
#' @title Pre-processing the progeny data flp for beef-on-dairy input-parameter-file of ECOWEIGHT
#'
#' @description
#' The program package ECOWEIGHT (C Programs for Calculating Economic Weights in Livestock)
#' need input parameter files. This function processed different functions
#' to prepare the input parameter files based on progeny flp data.
#'
#' @param ps_sirebreed sire breed
#' @param ps_dambreed dam breed
#' @param ps_prodsystew production system build up as option in ECOWEIGHT
#' @param ps_marketchannel market channel
#' @param ps_path_directory2create path of the directory that will be created
#' @param ps_input_file_progeny_flp_statement path to file with statement based on calving for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_flp_carcass_matrix_statement path to file with statement regarding carcass prices
#' @param ps_input_file_flp path to file with input coming from calving for the input-parameter-file for ECOWEIGHT
#' @param ps_start_flp_date setting the start of the slaughter date to filter in the slaughter data
#' @param ps_end_flp_date setting the end of the slaughter date to filter in the slaughter data
#' @param ps_input_file_ped path to file with pedigree input
#' @param pb_log indicator whether logs should be produced
#' @param plogger logger object
#'
#' @importFrom dplyr %>%
#' @import dplyr
#'
#' @export pre_process_ewdc_input_progeny_data_flp
pre_process_ewdc_input_progeny_data_flp <- function(ps_sirebreed,
ps_dambreed,
ps_prodsystew,
ps_marketchannel,
ps_path_directory2create,
ps_input_file_progeny_flp_statement,
ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp,
ps_input_file_calf,
ps_start_flp_date,
ps_end_flp_date,
ps_input_file_ped,
pb_log,
plogger = NULL){
### # Setting the log-file
if(pb_log){
if(is.null(plogger)){
lgr <- get_qp4ewc_logger(ps_logfile = 'pre_process_ewdc_input_progeny_data_flp.log',
ps_level = 'INFO')
}else{
lgr <- plogger
}
qp4ewc_log_info(lgr, 'pre_process_ewdc_input_progeny_data_flp',
paste0('Starting function with parameters:\n * ps_sirebreed: ', ps_sirebreed, '\n',
' * ps_dambreed: ', ps_dambreed, '\n',
' * ps_prodsystew: ', ps_prodsystew, '\n',
' * ps_marketchannel: ', ps_marketchannel, '\n',
' * ps_path_directory2create: ', ps_path_directory2create, '\n',
' * ps_input_file_progeny_flp_statement: ',ps_input_file_progeny_flp_statement, '\n',
' * ps_input_file_flp_carcass_matrix_statement: ', ps_input_file_flp_carcass_matrix_statement, '\n',
' * ps_input_file_flp: ', ps_input_file_flp, '\n',
' * ps_input_file_calf: ', ps_input_file_calf, '\n',
' * ps_start_flp_date: ',ps_start_flp_date,'\n',
' * ps_end_flp_date: ',ps_end_flp_date,'\n',
' * ps_input_file_ped: ',ps_input_file_ped))
}
### # Get the constants
l_constants <- get_constants()
l_constants_progeny_beefOndairy <- get_constants_progeny_beefOndairy()
l_constants_ew_input_beefOndairy <- get_constants_ew_input_beefOndairy()
l_constants_carcass_beefOndairy <- get_constants_carcass_beefOndairy()
l_constants_liveweight_deductions_male_beefOndairy <- get_constants_liveweight_deductions_male_beefOndairy()
l_constants_liveweight_deductions_female_beefOndairy <- get_constants_liveweight_deductions_female_beefOndairy()
l_constants_liveweight_deductions_veal_beefOndairy <- get_constants_liveweight_deductions_veal_beefOndairy()
### # Read file with statement based on progeny data flp for input-parameter-file of ECOWEIGHT
tbl_input_statement_flp <- read_file_input(ps_input_file = ps_input_file_progeny_flp_statement,
pb_log = pb_log,
plogger = lgr)
### # Read file with statement based on carcass prices for input-parameter-file of ECOWEIGHT
tbl_input_statement_flp_carcass <- read_file_input(ps_input_file = ps_input_file_flp_carcass_matrix_statement,
pb_log = pb_log,
plogger = lgr)
### # Read file with progeny-flp data
tbl_flp <- read_file_input_flp(ps_input_file_flp = ps_input_file_flp,
ps_start_flp_date = ps_start_flp_date,
ps_end_flp_date = ps_end_flp_date,
pb_log = pb_log,
plogger = lgr)
### # Read pedigree file
tbl_ped <- read_file_input_ped(ps_input_file_ped = ps_input_file_ped,
pb_log = pb_log,
plogger = lgr)
### # Read calf sale data file
tbl_calf <- read_file_input_calf(ps_input_file_calf = ps_input_file_calf,
pb_log = pb_log,
plogger = lgr)
### # Merge progeny-flp data and pedigree files
tbl_merged_data <- tbl_flp %>% dplyr::inner_join(tbl_ped, by = c("NakoTVD" = "TVDid"))
tbl_merged_rearing_data <- tbl_merged_data %>% dplyr::inner_join(tbl_calf, by = c("NakoTVD" = "TVD"))
### # Create different tibble if purebred or crossbred
tbl_purebred_beef <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_sirebreed) %>% dplyr::filter(Mutter_RasseCode == ps_sirebreed)
tbl_purebred_dairy <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_dambreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
tbl_crossbred <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_sirebreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
tbl_crossbred_rearing <- tbl_merged_rearing_data %>% dplyr::filter(Vater_RasseCode == ps_sirebreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
tbl_purebred_rearing <- tbl_merged_rearing_data %>% dplyr::filter(Vater_RasseCode == ps_dambreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
# ****************************************************************************
## ---- Conventional-Beef ----
# ****************************************************************************
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_beef){
# Update statement-progeny-flp-input from the data by calculating mean birth weight
## females
female_bw_puredairy <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
female_bw_cross <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
### update parameter for female birth weight (1st value purebred calves, 2nd value crossbred calves)
value2update_bw_female <- paste0(c(female_bw_puredairy, female_bw_cross),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_female,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_female,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_bw_female,
pb_log = pb_log,
plogger = lgr)
## males
male_bw_puredairy <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
male_bw_cross <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
### update parameter for male birth weight (1st value purebred calves, 2nd value crossbred calves)
value2update_bw_male <- paste0(c(male_bw_puredairy, male_bw_cross),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_male,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_male,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_bw_male,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mean live weight at slaughter
livewt_slaughter_f_purebeef <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_f_purebeef,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m_purebeef <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_m_purebeef,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_f_puredairy <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_f_puredairy,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m_puredairy <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_m_puredairy,
pb_log = pb_log,
plogger = lgr)
#crossbred slaughter weights required for calculation of daily gain
livewt_slaughter_f_cross <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m_cross <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
#Daily gain birth to end of rearing (at approx. 90 days and 130kg according to Agroscope green book)
age_1stfeeding <- l_constants_progeny_beefOndairy$age_1stfeeding
value2update_age1stfeeding <- paste0(c(age_1stfeeding, age_1stfeeding),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_age1stfeeding,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_age1stfeeding,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_age1stfeeding,
pb_log = pb_log,
plogger = lgr)
rearing_end_age_pure <- calculate_rearing_age_beef(ps_input_flp_tibble = tbl_purebred_rearing,
pb_log = pb_log,
plogger = lgr)
rearing_end_age_cross <- calculate_rearing_age_beef(ps_input_flp_tibble = tbl_crossbred_rearing,
pb_log = pb_log,
plogger = lgr)
value2update_rearing_end_age <- paste0(c(rearing_end_age_pure, rearing_end_age_cross),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingage,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingage,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_rearing_end_age,
pb_log = pb_log,
plogger = lgr)
#rearing weight only needed for daily gain calculations
rearing_end_wt_pure_m <- calculate_rearing_weight_beef(ps_input_flp_tibble = tbl_purebred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
pb_log = pb_log,
plogger = lgr)
rearing_end_wt_cross_m <- calculate_rearing_weight_beef(ps_input_flp_tibble = tbl_crossbred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
pb_log = pb_log,
plogger = lgr)
if(rearing_end_wt_pure_m == "NaN"){
rearing_end_wt_pure_m <- rearing_end_wt_cross_m
}
if(rearing_end_wt_cross_m == "NaN"){
rearing_end_wt_cross_m <- rearing_end_wt_cross_m
}
rearing_end_wt_pure_f <- calculate_rearing_weight_beef(ps_input_flp_tibble = tbl_purebred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
pb_log = pb_log,
plogger = lgr)
rearing_end_wt_cross_f <- calculate_rearing_weight_beef(ps_input_flp_tibble = tbl_crossbred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
pb_log = pb_log,
plogger = lgr)
if(rearing_end_wt_pure_f == "NaN"){
rearing_end_wt_pure_f <- rearing_end_wt_cross_f
}
if(rearing_end_wt_cross_f == "NaN"){
rearing_end_wt_cross_f <- rearing_end_wt_pure_f
}
#daily gain from birth to rearing at 90 days
dailygain_rearing_f_purebred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_pure,
pv_mean_rearing_wt = rearing_end_wt_pure_f,
pv_mean_birthwt = female_bw_puredairy,
pb_log = pb_log,
plogger = lgr)
dailygain_rearing_f_crossbred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_cross,
pv_mean_rearing_wt = rearing_end_wt_cross_f,
pv_mean_birthwt = female_bw_cross,
pb_log = pb_log,
plogger = lgr)
value2update_rearingf <- paste0(c(dailygain_rearing_f_purebred, dailygain_rearing_f_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_f,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_f,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_rearingf,
pb_log = pb_log,
plogger = lgr)
dailygain_rearing_m_purebred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_pure,
pv_mean_rearing_wt = rearing_end_wt_pure_m,
pv_mean_birthwt = male_bw_puredairy,
pb_log = pb_log,
plogger = lgr)
dailygain_rearing_m_crossbred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_cross,
pv_mean_rearing_wt = rearing_end_wt_cross_m,
pv_mean_birthwt = male_bw_cross,
pb_log = pb_log,
plogger = lgr)
value2update_rearingm <- paste0(c(dailygain_rearing_m_purebred, dailygain_rearing_m_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_m,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_m,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_rearingm,
pb_log = pb_log,
plogger = lgr)
#slaughter age required for calculation of daily gain during fattening
slaughterage_f_purebeef <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m_purebeef <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_f_puredairy <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m_puredairy <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_f_crossbred <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m_crossbred <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_beef,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
#daily gain during fattening
dailygain_fattening_f_purebred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_f_puredairy,
pv_mean_weaningage = rearing_end_age_pure,
pv_mean_livewt_atslaughter = livewt_slaughter_f_puredairy,
pv_mean_weaningwt = rearing_end_wt_pure_f,
pb_log = pb_log,
plogger = lgr)
dailygain_fattening_f_crossbred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_f_crossbred,
pv_mean_weaningage = rearing_end_age_cross,
pv_mean_livewt_atslaughter = livewt_slaughter_f_cross,
pv_mean_weaningwt = rearing_end_wt_cross_f,
pb_log = pb_log,
plogger = lgr)
value2update_fatteningf <- paste0(c(dailygain_fattening_f_purebred, dailygain_fattening_f_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_f,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_f,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_fatteningf,
pb_log = pb_log,
plogger = lgr)
dailygain_fattening_m_purebred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_m_puredairy,
pv_mean_weaningage = rearing_end_age_pure,
pv_mean_livewt_atslaughter = livewt_slaughter_m_puredairy,
pv_mean_weaningwt = rearing_end_wt_pure_m,
pb_log = pb_log,
plogger = lgr)
dailygain_fattening_m_crossbred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_m_crossbred,
pv_mean_weaningage = rearing_end_age_cross,
pv_mean_livewt_atslaughter = livewt_slaughter_m_cross,
pv_mean_weaningwt = rearing_end_wt_cross_m,
pb_log = pb_log,
plogger = lgr)
value2update_fatteningm <- paste0(c(dailygain_fattening_m_purebred, dailygain_fattening_m_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_m,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_m,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_fatteningm,
pb_log = pb_log,
plogger = lgr)
### # deductions for carcass weight:
carcass_price_bull <- calculate_carcass_price(ps_tbl_input_statement_carcass = tbl_input_statement_flp_carcass,
ps_sex = l_constants$sex_male,
ps_liveweight = livewt_slaughter_m_cross,
ps_marketchannel = ps_marketchannel,
pb_log = pb_log,
plogger = lgr)
carcass_price_heifer <- calculate_carcass_price(ps_tbl_input_statement_carcass = tbl_input_statement_flp_carcass,
ps_sex = l_constants$sex_female,
ps_liveweight = livewt_slaughter_f_cross,
ps_marketchannel = ps_marketchannel,
pb_log = pb_log,
plogger = lgr)
carcass_price <- tibble(carcass_price_bull, carcass_price_heifer)
write.csv(carcass_price, file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel, collapse =""),"carcass_prices.csv"), row.names = FALSE)
}
# ****************************************************************************
## ---- Conventional-Veal or Export----
# ****************************************************************************
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_calf | ps_marketchannel == l_constants_progeny_beefOndairy$export_calf){
# Update statement-progeny-flp-input from the data by calculating mean birth weight
female_bw_puredairy <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
female_bw_cross <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
### update parameter for female birth weight (1st value purebred calves, 2nd value crossbred calves)
value2update_bw_female <- paste0(c(female_bw_puredairy, female_bw_cross),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_female,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_female,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_bw_female,
pb_log = pb_log,
plogger = lgr)
male_bw_puredairy <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
male_bw_cross <- calculate_mean_birthweight(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
value2update_bw_male <- paste0(c(male_bw_puredairy, male_bw_cross),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_male,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_bw_male,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_bw_male,
pb_log = pb_log,
plogger = lgr)
# Update statement-progeny-flp-input from the data by calculating mean live weight at slaughter
livewt_slaughter_f_purebeef <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_f_purebeef,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m_purebeef <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_beef,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_m_purebeef,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_f_puredairy <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_heifer_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_f_puredairy,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m_puredairy <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_lw_bull_slaughter_dairy,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = livewt_slaughter_m_puredairy,
pb_log = pb_log,
plogger = lgr)
#crossbred slaughter weights required for claculation of daily gain
livewt_slaughter_f_cross <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
livewt_slaughter_m_cross <- calculate_mean_liveweight_slaughter(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
#Daily gain birth to end of rearing (at approx. 90 days and 130kg according to Agroscope green book)
age_1stfeeding <- l_constants_progeny_beefOndairy$age_1stfeeding
value2update_age1stfeeding <- paste0(c(age_1stfeeding, age_1stfeeding),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_age1stfeeding,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_age1stfeeding,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_age1stfeeding,
pb_log = pb_log,
plogger = lgr)
rearing_end_age_pure <- calculate_rearing_age_calf(ps_input_flp_tibble = tbl_purebred_rearing,
pb_log = pb_log,
plogger = lgr)
rearing_end_age_cross <- calculate_rearing_age_calf(ps_input_flp_tibble = tbl_crossbred_rearing,
pb_log = pb_log,
plogger = lgr)
#ewdc will not run with this rearing age - it is too low. We use the original rearing age to calcuate average daily gain but then set the rearing age to 90 which will allow the program to run.
rearing_age_updated <- l_constants_progeny_beefOndairy$rearing_age_update
value2update_rearing_end_age <- paste0(c(rearing_age_updated, rearing_age_updated),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingage,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingage,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_rearing_end_age,
pb_log = pb_log,
plogger = lgr)
#rearing weight only needed for daily gain calculations
rearing_end_wt_pure_m <- calculate_rearing_weight_veal(ps_input_flp_tibble = tbl_purebred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
pb_log = pb_log,
plogger = lgr)
rearing_end_wt_cross_m <- calculate_rearing_weight_veal(ps_input_flp_tibble = tbl_crossbred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
pb_log = pb_log,
plogger = lgr)
if(rearing_end_wt_pure_m == "NaN"){
rearing_end_wt_pure_m <- rearing_end_wt_cross_m
}
if(rearing_end_wt_cross_m == "NaN"){
rearing_end_wt_cross_m <- rearing_end_wt_pure_m
}
rearing_end_wt_pure_f <- calculate_rearing_weight_veal(ps_input_flp_tibble = tbl_purebred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
pb_log = pb_log,
plogger = lgr)
rearing_end_wt_cross_f <- calculate_rearing_weight_veal(ps_input_flp_tibble = tbl_crossbred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
pb_log = pb_log,
plogger = lgr)
if(rearing_end_wt_pure_f == "NaN"){
rearing_end_wt_pure_f <- rearing_end_wt_cross_f
}
if(rearing_end_wt_cross_f == "NaN"){
rearing_end_wt_cross_f <- rearing_end_wt_pure_f
}
#daily gain from birth to rearing at 90 days
dailygain_rearing_f_purebred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_pure,
pv_mean_rearing_wt = rearing_end_wt_pure_f,
pv_mean_birthwt = female_bw_puredairy,
pb_log = pb_log,
plogger = lgr)
dailygain_rearing_f_crossbred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_cross,
pv_mean_rearing_wt = rearing_end_wt_cross_f,
pv_mean_birthwt = female_bw_cross,
pb_log = pb_log,
plogger = lgr)
value2update_rearingf <- paste0(c(dailygain_rearing_f_purebred, dailygain_rearing_f_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_f,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_f,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_rearingf,
pb_log = pb_log,
plogger = lgr)
dailygain_rearing_m_purebred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_pure,
pv_mean_rearing_wt = rearing_end_wt_pure_m,
pv_mean_birthwt = male_bw_puredairy,
pb_log = pb_log,
plogger = lgr)
dailygain_rearing_m_crossbred <- calculate_dailygain_rearing(pv_mean_rearingage = rearing_end_age_cross,
pv_mean_rearing_wt = rearing_end_wt_cross_m,
pv_mean_birthwt = male_bw_cross,
pb_log = pb_log,
plogger = lgr)
value2update_rearingm <- paste0(c(dailygain_rearing_m_purebred, dailygain_rearing_m_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_m,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_rearingdailygain_m,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_rearingm,
pb_log = pb_log,
plogger = lgr)
#slaughter age required for calculation of daily gain during fattening
slaughterage_f_purebeef <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m_purebeef <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_beef,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_f_puredairy <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m_puredairy <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_purebred_dairy,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_f_crossbred <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
slaughterage_m_crossbred <- calculate_mean_slaughterage(ps_input_flp_tibble = tbl_crossbred,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
ps_marketing_channel = l_constants_progeny_beefOndairy$conv_fattening_calf,
ps_prodsystew = ps_prodsystew,
pb_log = pb_log,
plogger = lgr)
#daily gain during fattening
dailygain_fattening_f_purebred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_f_puredairy,
pv_mean_weaningage = rearing_end_age_pure,
pv_mean_livewt_atslaughter = livewt_slaughter_f_puredairy,
pv_mean_weaningwt = rearing_end_wt_pure_f,
pb_log = pb_log,
plogger = lgr)
dailygain_fattening_f_crossbred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_f_crossbred,
pv_mean_weaningage = rearing_end_age_cross,
pv_mean_livewt_atslaughter = livewt_slaughter_f_cross,
pv_mean_weaningwt = rearing_end_wt_cross_f,
pb_log = pb_log,
plogger = lgr)
value2update_fatteningf <- paste0(c(dailygain_fattening_f_purebred, dailygain_fattening_f_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_fatdailygain_f,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_fatdailygain_f,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_fatteningf,
pb_log = pb_log,
plogger = lgr)
dailygain_fattening_m_purebred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_m_puredairy,
pv_mean_weaningage = rearing_end_age_pure,
pv_mean_livewt_atslaughter = livewt_slaughter_m_puredairy,
pv_mean_weaningwt = rearing_end_wt_pure_m,
pb_log = pb_log,
plogger = lgr)
dailygain_fattening_m_crossbred <- calculate_dailygain(pv_mean_slaughterage = slaughterage_m_crossbred,
pv_mean_weaningage = rearing_end_age_cross,
pv_mean_livewt_atslaughter = livewt_slaughter_m_cross,
pv_mean_weaningwt = rearing_end_wt_cross_m,
pb_log = pb_log,
plogger = lgr)
value2update_fatteningm <- paste0(c(dailygain_fattening_m_purebred, dailygain_fattening_m_crossbred),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_fatdailygain_m,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_fatdailygain_m,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_fatteningm,
pb_log = pb_log,
plogger = lgr)
carcass_price_veal_M <- calculate_carcass_price(ps_tbl_input_statement_carcass = tbl_input_statement_flp_carcass,
ps_sex = l_constants$sex_male,
ps_liveweight = livewt_slaughter_f_cross,
ps_marketchannel = ps_marketchannel,
pb_log = pb_log,
plogger = lgr)
carcass_price_veal_F <- calculate_carcass_price(ps_tbl_input_statement_carcass = tbl_input_statement_flp_carcass,
ps_sex = l_constants$sex_female,
ps_liveweight = livewt_slaughter_f_cross,
ps_marketchannel = ps_marketchannel,
pb_log = pb_log,
plogger = lgr)
carcass_price <- tibble(carcass_price_veal_M, carcass_price_veal_F)
write.csv(carcass_price, file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel, collapse =""),"carcass_prices.csv"), row.names = FALSE)
}
# Update statement-progeny-flp-input from the data by calculating mature cow weight
mature_weight_cow_dairy <- calculate_cow_liveweight(ps_input_flp_tibble = tbl_merged_data,
ps_first_calvingweight = FALSE,
ps_second_calvingweight = FALSE,
ps_dambreed = ps_dambreed,
pb_log = pb_log,
plogger = lgr)
mature_weight_cow_beef <- calculate_cow_liveweight(ps_input_flp_tibble = tbl_merged_data,
ps_first_calvingweight = FALSE,
ps_second_calvingweight = FALSE,
ps_dambreed = ps_sirebreed,
pb_log = pb_log,
plogger = lgr)
#Not currently working in ewdc ecoweight (weight is too low)
# update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
# paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
# tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_cowwt_dairy_3calving,l_constants_progeny_beefOndairy$idx_col_input_file]),
# ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_cowwt_dairy_3calving,l_constants_progeny_beefOndairy$idx_col_input],
# ps_value2update = mature_weight_cow_dairy,
# pb_log = pb_log,
# plogger = lgr)
#
# update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
# paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
# tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_cowwt_beef_3calving,l_constants_progeny_beefOndairy$idx_col_input_file]),
# ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_cowwt_beef_3calving,l_constants_progeny_beefOndairy$idx_col_input],
# ps_value2update = mature_weight_cow_beef,
# pb_log = pb_log,
# plogger = lgr)
#Age of calves sold for export
value2update_agesale <- paste0(c(rearing_end_age_pure, rearing_end_age_cross),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_agesale_f,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_agesale_f,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_agesale,
pb_log = pb_log,
plogger = lgr)
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_agesale_m,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_agesale_m,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_agesale,
pb_log = pb_log,
plogger = lgr)
#change parameter in input15 for proportion of male calves exported
if(ps_prodsystew == l_constants_ew_input_beefOndairy$prodsyst4){
if(ps_marketchannel == "Export"){
utilisation_male_calves <- l_constants_progeny_beefOndairy$male_export
}else{
utilisation_male_calves <- l_constants_progeny_beefOndairy$male_fattening
}
value2update_male_utilisation <- paste0(c(utilisation_male_calves, utilisation_male_calves),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_utilisation_male,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_utilisation_male,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_male_utilisation,
pb_log = pb_log,
plogger = lgr)
}
#Price at sale per kg liveweight
price_sale_pure_f <- calculate_age_calf_sale(ps_input_flp_tibble = tbl_purebred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
pb_log = pb_log,
plogger = lgr)
price_sale_cross_f <- calculate_age_calf_sale(ps_input_flp_tibble = tbl_crossbred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_female,
pb_log = pb_log,
plogger = lgr)
if(price_sale_pure_f == "NaN"){
price_sale_pure_f <- price_sale_cross_f
}
value2update_pricesale_f <- paste0(c(price_sale_pure_f, price_sale_cross_f),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_price_f,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_price_f,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_pricesale_f,
pb_log = pb_log,
plogger = lgr)
price_sale_pure_m <- calculate_age_calf_sale(ps_input_flp_tibble = tbl_purebred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
pb_log = pb_log,
plogger = lgr)
price_sale_cross_m <- calculate_age_calf_sale(ps_input_flp_tibble = tbl_crossbred_rearing,
ps_sex = l_constants_progeny_beefOndairy$sex_male,
pb_log = pb_log,
plogger = lgr)
if(price_sale_pure_m == "NaN"){
price_sale_pure_m <- price_sale_cross_m
}
value2update_pricesale_m <- paste0(c(price_sale_pure_m, price_sale_cross_m),collapse = " ")
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_price_m,l_constants_progeny_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp[l_constants_progeny_beefOndairy$idx_row_price_m,l_constants_progeny_beefOndairy$idx_col_input],
ps_value2update = value2update_pricesale_m,
pb_log = pb_log,
plogger = lgr)
}
#' @title Pre-processing the carcass conformation, fat, prices based on flp-data for beef-on-beef input-parameter-file of ECOWEIGHT
#'
#' @description
#' The program package ECOWEIGHT (C Programs for Calculating Economic Weights in Livestock)
#' need input parameter files. This function processed different functions
#' to prepare the input parameter files based on progeny flp data and literature about the price-system.
#'
#' @param ps_sirebreed sire breed
#' @param ps_dambreed dam breed
#' @param ps_prodsystew production system build up as option in ECOWEIGHT
#' @param ps_marketchannel market channel
#' @param ps_path_directory2create path of the directory that will be created
#' @param ps_input_file_flp_carcass_matrix_statement path to file with statement based on calving for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_flp path to file with input coming from calving for the input-parameter-file for ECOWEIGHT
#' @param ps_start_flp_date setting the start of the slaughter date to filter in the slaughter data
#' @param ps_end_flp_date setting the end of the slaughter date to filter in the slaughter data
#' @param ps_input_file_price_cow path to file with price for cows
#' @param ps_input_file_price_bull path to file with price for bulls
#' @param ps_input_file_price_heifer path tho file with price for heifers
#' @param pb_log indicator whether logs should be produced
#' @param plogger logger object
#'
#' @importFrom dplyr %>%
#' @import dplyr
#'
#' @export pre_process_ewbc_input_carcass_data_flp
pre_process_ewbc_input_carcass_data_flp <- function(ps_sirebreed,
ps_dambreed,
ps_prodsystew,
ps_marketchannel,
ps_path_directory2create,
ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp,
ps_start_flp_date,
ps_input_file_ped,
ps_end_flp_date,
ps_input_file_price_cow,
ps_input_file_price_bull,
ps_input_file_price_heifer,
pb_log,
plogger = NULL){
### # Setting the log-file
if(pb_log){
if(is.null(plogger)){
lgr <- get_qp4ewc_logger(ps_logfile = 'pre_process_ewbc_input_carcass_data_flp.log',
ps_level = 'INFO')
}else{
lgr <- plogger
}
qp4ewc_log_info(lgr, 'pre_process_ewbc_input_carcass_data_flp',
paste0('Starting function with parameters:\n * ps_sirebreed: ', ps_sirebreed, '\n',
' * ps_dambreed: ', ps_dambreed, '\n',
' * ps_prodsystew: ', ps_prodsystew, '\n',
' * ps_marketchannel: ', ps_marketchannel, '\n',
' * ps_path_directory2create: ', ps_path_directory2create, '\n',
' * ps_input_file_flp_carcass_matrix_statement: ',ps_input_file_flp_carcass_matrix_statement, '\n',
' * ps_input_file_flp: ', ps_input_file_flp, '\n',
' * ps_start_flp_date: ',ps_start_flp_date,'\n',
' * ps_input_file_ped: ',ps_input_file_ped,'\n',
' * ps_end_flp_date: ',ps_end_flp_date,'\n',
' * ps_input_file_price_cow: ',ps_input_file_price_cow,'\n',
' * ps_input_file_price_bull: ',ps_input_file_price_bull,'\n',
' * ps_input_file_price_heifer: ',ps_input_file_price_heifer))
}
### # Read file with statement based on carcass data flp for input-parameter-file of ECOWEIGHT
tbl_input_statement_flp_carcass <- read_file_input(ps_input_file = ps_input_file_flp_carcass_matrix_statement,
pb_log = pb_log,
plogger = lgr)
### # Read file with progeny-flp data
tbl_flp <- read_file_input_flp(ps_input_file_flp = ps_input_file_flp,
ps_start_flp_date = ps_start_flp_date,
ps_end_flp_date = ps_end_flp_date,
pb_log = pb_log,
plogger = lgr)
tbl_ped <- read_file_input_ped(ps_input_file_ped = ps_input_file_ped,
pb_log = pb_log,
plogger = lgr)
#read carcass price table (with deductions)
tbl_carcass_price <- readr::read_delim(file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel, collapse = ""),"carcass_prices.csv"), delim = ",")
### # Merge progeny-flp data and pedigree files
tbl_merged_data <- tbl_flp %>% dplyr::inner_join(tbl_ped, by = c("NakoTVD" = "TVDid"))
### # Transformation of the fleshiness score
tbl_merged_data <- transform_fleshinesss(ps_input_merged_tibble = tbl_merged_data,
pb_log = pb_log,
plogger = lgr)
### # Create different tibble if purebred or crossbred
tbl_breed_data <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_sirebreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
### # Get the constants
l_constants_carcass_beefOnbeef <- get_constants_carcass_beefOnbeef()
l_constants_carcass_beefOndairy <- get_constants_carcass_beefOndairy()
l_constants_ewbc_input_beefOnbeef <- get_constants_ewbc_input_beefOnbeef()
l_constants_ew_input_beefOndairy <- get_constants_ew_input_beefOndairy()
l_constants_liveweight_deductions_beefOnbeef <- get_constants_liveweight_deductions_beefOnbeef()
### # Number of classes for fleshiness
idx_row_class_fleshiness <- l_constants_carcass_beefOnbeef$idx_row_class_fleshiness
idx_col_input_file <- l_constants_carcass_beefOnbeef$idx_col_input_file
idx_col_input <- l_constants_carcass_beefOnbeef$idx_col_input
idx_col_input_value <- l_constants_carcass_beefOnbeef$idx_col_input_value
idx_row_class_fat <- l_constants_carcass_beefOnbeef$idx_row_class_fat
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[idx_row_class_fleshiness,idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[idx_row_class_fleshiness,idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[idx_row_class_fleshiness,idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
### # Number of classes for fat covering
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[idx_row_class_fat,idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[idx_row_class_fat,idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[idx_row_class_fat,idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Cows frequencies ----
# ****************************************************************************
freq_mat_cow <- build_freq_conf_fat(ps_input_flp_tibble = tbl_breed_data,
ps_sex = l_constants_carcass_beefOnbeef$sex_female,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = TRUE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOnbeef$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOnbeef$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOnbeef$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOnbeef$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOnbeef$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOnbeef$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOnbeef$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Heifers frequencies ----
# ****************************************************************************
freq_mat_heifer <- build_freq_conf_fat(ps_input_flp_tibble = tbl_breed_data,
ps_sex = l_constants_carcass_beefOnbeef$sex_female,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = FALSE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOnbeef$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOnbeef$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOnbeef$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOnbeef$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOnbeef$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOnbeef$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOnbeef$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Bulls frequencies ----
# ****************************************************************************
freq_mat_bull <- build_freq_conf_fat(ps_input_flp_tibble = tbl_breed_data,
ps_sex = l_constants_carcass_beefOnbeef$sex_male,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = FALSE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOnbeef$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOnbeef$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOnbeef$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOnbeef$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOnbeef$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOnbeef$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_freq_class,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOnbeef$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Prices ----
# ****************************************************************************
# Update statement_flp_carcass-input from the data
# base price for cow
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_price,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_price,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_price,l_constants_carcass_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
# average price bull
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_avprice,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_avprice,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_avprice,l_constants_carcass_beefOnbeef$idx_col_input_value]$input_value,
pb_log = pb_log,
plogger = lgr)
# basis price bull
bull_carcass_price <- tbl_carcass_price[[l_constants_liveweight_deductions_beefOnbeef$idx_row_natura_bull]]
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_price,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_price,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = bull_carcass_price,
pb_log = pb_log,
plogger = lgr)
# basis price heifer
heifer_carcass_price <- tbl_carcass_price[[l_constants_liveweight_deductions_beefOnbeef$idx_row_natura_heifer]]
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_price,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_price,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = heifer_carcass_price,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Price coefficient for cow----
# ****************************************************************************
mat_coeffprice_cow <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_cow,
pb_log = pb_log,
plogger = lgr)
# Update price coefficient for cow
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOnbeef$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOnbeef$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOnbeef$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOnbeef$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOnbeef$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOnbeef$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_cow_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOnbeef$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Price coefficient for bull----
# ****************************************************************************
mat_coeffprice_bull <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_bull,
pb_log = pb_log,
plogger = lgr)
# Update price coefficient for bull
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOnbeef$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOnbeef$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOnbeef$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOnbeef$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOnbeef$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOnbeef$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_bull_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOnbeef$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Price coefficient for heifer----
# ****************************************************************************
mat_coeffprice_heifer <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_heifer,
pb_log = pb_log,
plogger = lgr)
# Update price coefficient for bull
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOnbeef$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOnbeef$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOnbeef$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOnbeef$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOnbeef$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOnbeef$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOnbeef$idx_row_heifer_coef,l_constants_carcass_beefOnbeef$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOnbeef$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOnbeef$line7,
pb_log = pb_log,
plogger = lgr)
}
#' @title Pre-processing the carcass conformation, fat, prices based on flp-data for beef-on-dairy input-parameter-file of ECOWEIGHT
#'
#' @description
#' The program package ECOWEIGHT (C Programs for Calculating Economic Weights in Livestock)
#' need input parameter files. This function processed different functions
#' to prepare the input parameter files based on progeny flp data and literature about the price-system.
#'
#' @param ps_sirebreed sire breed
#' @param ps_dambreed dam breed
#' @param ps_prodsystew production system build up as option in ECOWEIGHT
#' @param ps_marketchannel market channel
#' @param ps_path_directory2create path of the directory that will be created
#' @param ps_input_file_flp_carcass_matrix_statement path to file with statement based on calving for the input-parameter-file for ECOWEIGHT
#' @param ps_input_file_flp path to file with input coming from calving for the input-parameter-file for ECOWEIGHT
#' @param ps_start_flp_date setting the start of the slaughter date to filter in the slaughter data pre_process_input_progeny_data_flp
#' @param ps_end_flp_date setting the end of the slaughter date to filter in the slaughter data
#' @param ps_input_file_price_cow path to file with price for cows
#' @param ps_input_file_price_bull path to file with price for bulls
#' @param ps_input_file_price_heifer path tho file with price for heifers
#' @param ps_input_file_price_calf path tho file with price for heifers
#' @param ps_input_file_ped input file for pedigree
#' @param pb_log indicator whether logs should be produced
#' @param plogger logger object
#'
#' @importFrom dplyr %>%
#' @import dplyr
#' @import readr
#'
#' @export pre_process_ewdc_input_carcass_data_flp
pre_process_ewdc_input_carcass_data_flp <- function(ps_sirebreed,
ps_dambreed,
ps_prodsystew,
ps_marketchannel,
ps_path_directory2create,
ps_input_file_flp_carcass_matrix_statement,
ps_input_file_flp,
ps_input_file_ped,
ps_start_flp_date,
ps_end_flp_date,
ps_input_file_price_cow,
ps_input_file_price_bull,
ps_input_file_price_heifer,
ps_input_file_price_calf,
pb_log,
plogger = NULL){
### # Setting the log-file
if(pb_log){
if(is.null(plogger)){
lgr <- get_qp4ewc_logger(ps_logfile = 'pre_process_ewdc_input_carcass_data_flp.log',
ps_level = 'INFO')
}else{
lgr <- plogger
}
qp4ewc_log_info(lgr, 'pre_process_ewdc_input_carcass_data_flp',
paste0('Starting function with parameters:\n * ps_sirebreed: ', ps_sirebreed, '\n',
' * ps_dambreed: ', ps_dambreed, '\n',
' * ps_prodsystew: ', ps_prodsystew, '\n',
' * ps_marketchannel: ', ps_marketchannel, '\n',
' * ps_path_directory2create: ', ps_path_directory2create, '\n',
' * ps_input_file_flp_carcass_matrix_statement: ',ps_input_file_flp_carcass_matrix_statement, '\n',
' * ps_input_file_flp: ', ps_input_file_flp, '\n',
' * ps_start_flp_date: ',ps_start_flp_date,'\n',
' * ps_end_flp_date: ',ps_end_flp_date,'\n',
' * ps_input_file_ped: ',ps_input_file_ped,'\n',
' * ps_input_file_price_cow: ',ps_input_file_price_cow,'\n',
' * ps_input_file_price_bull: ',ps_input_file_price_bull,'\n',
' * ps_input_file_price_calf: ',ps_input_file_price_calf,'\n',
' * ps_input_file_price_heifer: ',ps_input_file_price_heifer))
}
### # Read file with statement based on carcass data flp for input-parameter-file of ECOWEIGHT
tbl_input_statement_flp_carcass <- read_file_input(ps_input_file = ps_input_file_flp_carcass_matrix_statement,
pb_log = pb_log,
plogger = lgr)
### # Read file with progeny-flp data
tbl_flp <- read_file_input_flp(ps_input_file_flp = ps_input_file_flp,
ps_start_flp_date = ps_start_flp_date,
ps_end_flp_date = ps_end_flp_date,
pb_log = pb_log,
plogger = lgr)
tbl_ped <- read_file_input_ped(ps_input_file_ped,
pb_log = pb_log,
plogger = lgr)
tbl_carcass_price <- readr::read_delim(file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel, collapse = ""),"carcass_prices.csv"), delim = ",")
### # Merge progeny-flp data and pedigree files
tbl_merged_data <- tbl_flp %>% dplyr::inner_join(tbl_ped, by = c("NakoTVD" = "TVDid"))
### # Transformation of the fleshiness score
tbl_merged_data <- transform_fleshinesss(ps_input_merged_tibble = tbl_merged_data,
pb_log = pb_log,
plogger = lgr)
### # Create different tibble if purebred or crossbred
tbl_purebred_dairy_data <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_dambreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
tbl_crossbred_data <- tbl_merged_data %>% dplyr::filter(Vater_RasseCode == ps_sirebreed) %>% dplyr::filter(Mutter_RasseCode == ps_dambreed)
### # Get the constants
l_constants_carcass_beefOnbeef <- get_constants_carcass_beefOnbeef()
l_constants_carcass_beefOndairy <- get_constants_carcass_beefOndairy()
l_constants_ewbc_input_beefOnbeef <- get_constants_ewbc_input_beefOnbeef()
l_constants_ew_input_beefOndairy <- get_constants_ew_input_beefOndairy()
l_constants_progeny_beefOndairy <- get_constants_progeny_beefOndairy()
l_constants_liveweight_deductions_male_beefOndairy <- get_constants_liveweight_deductions_male_beefOndairy()
l_constants_liveweight_deductions_female_beefOndairy <- get_constants_liveweight_deductions_female_beefOndairy()
l_constants_liveweight_deductions_veal_beefOndairy <- get_constants_liveweight_deductions_veal_beefOndairy()
### # Number of classes for fleshiness
idx_row_class_fleshiness <- l_constants_carcass_beefOndairy$idx_row_class_fleshiness
idx_col_input_file <- l_constants_carcass_beefOndairy$idx_col_input_file
idx_col_input <- l_constants_carcass_beefOndairy$idx_col_input
idx_col_input_value <- l_constants_carcass_beefOndairy$idx_col_input_value
idx_row_class_fat <- l_constants_carcass_beefOndairy$idx_row_class_fat
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[idx_row_class_fleshiness,idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[idx_row_class_fleshiness,idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[idx_row_class_fleshiness,idx_col_input_value]$input_value_beef,
pb_log = pb_log,
plogger = lgr)
### # Number of classes for fat covering
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[idx_row_class_fat,idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[idx_row_class_fat,idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[idx_row_class_fat,idx_col_input_value]$input_value_beef,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Cows frequencies ----
# ****************************************************************************
freq_mat_cow <- build_freq_conf_fat(ps_input_flp_tibble = tbl_purebred_dairy_data,
ps_sex = l_constants_carcass_beefOndairy$sex_female,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = TRUE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_cow[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Heifers frequencies purebred dairy ----
# ****************************************************************************
freq_mat_heifer_purebred <- build_freq_conf_fat(ps_input_flp_tibble = tbl_purebred_dairy_data,
ps_sex = l_constants_carcass_beefOndairy$sex_female,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = FALSE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer_purebred[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer_purebred[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer_purebred[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer_purebred[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer_purebred[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer_purebred[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer_purebred[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Bulls frequencies purebred dairy----
# ****************************************************************************
freq_mat_bull_purebred <- build_freq_conf_fat(ps_input_flp_tibble = tbl_purebred_dairy_data,
ps_sex = l_constants_carcass_beefOndairy$sex_male,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = FALSE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull_purebred[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull_purebred[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull_purebred[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull_purebred[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull_purebred[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull_purebred[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class_purebred,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull_purebred[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Heifers frequencies crossbred ----
# ****************************************************************************
freq_mat_heifer <- build_freq_conf_fat(ps_input_flp_tibble = tbl_crossbred_data,
ps_sex = l_constants_carcass_beefOndairy$sex_female,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = FALSE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_heifer[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Bulls frequencies crossbred ----
# ****************************************************************************
freq_mat_bull <- build_freq_conf_fat(ps_input_flp_tibble = tbl_crossbred_data,
ps_sex = l_constants_carcass_beefOndairy$sex_male,
ps_marketing_channel = ps_marketchannel,
ps_flag_cow = FALSE,
pb_log = pb_log,
plogger = lgr)
# Update statement_flp_carcass-input from the data
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_freq_class,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(freq_mat_bull[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Prices ----
# ****************************************************************************
# Update statement_flp_carcass-input from the data
# base price for cow
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_price,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_price,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_price,l_constants_carcass_beefOndairy$idx_col_input_value]$input_value_beef,
pb_log = pb_log,
plogger = lgr)
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_beef){
# basis price bull
bull_carcass_price <- tbl_carcass_price[[l_constants_liveweight_deductions_male_beefOndairy$idx_row_bull]]
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_price,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_price,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = bull_carcass_price,
pb_log = pb_log,
plogger = lgr)
}
# basis price heifer
heifer_carcass_price <- tbl_carcass_price[[l_constants_liveweight_deductions_female_beefOndairy$idx_row_heifer]]
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_price,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_price,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = heifer_carcass_price,
pb_log = pb_log,
plogger = lgr)
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_calf){
veal_carcass_price <- tbl_carcass_price[[l_constants_liveweight_deductions_veal_beefOndairy$idx_row_veal]]
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_price,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_price,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = veal_carcass_price,
pb_log = pb_log,
plogger = lgr)
# basis price heifer
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_price,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_price,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = veal_carcass_price,
pb_log = pb_log,
plogger = lgr)
}
if(ps_marketchannel == l_constants_progeny_beefOndairy$export_calf){
# basis price bull
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_price,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_price,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_price,l_constants_carcass_beefOndairy$idx_col_input_value_calf]$input_value_calf,
pb_log = pb_log,
plogger = lgr)
# basis price heifer
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_price,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_price,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_price,l_constants_carcass_beefOndairy$idx_col_input_value_calf]$input_value_calf,
pb_log = pb_log,
plogger = lgr)
}
# ****************************************************************************
## ---- Price coefficient for cow----
# ****************************************************************************
mat_coeffprice_cow <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_cow,
pb_log = pb_log,
plogger = lgr)
# Update price coefficient for cow
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X, XX, XXX
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_cow_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_cow[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Price coefficient for bull----
# ****************************************************************************
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_beef){
mat_coeffprice_bull <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_bull,
pb_log = pb_log,
plogger = lgr)
}
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_calf | ps_marketchannel == l_constants_progeny_beefOndairy$export_calf){
mat_coeffprice_bull <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_calf,
pb_log = pb_log,
plogger = lgr)
}
# Update price coefficient for bull
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_bull_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_bull[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
# ****************************************************************************
## ---- Price coefficient for heifer----
# ****************************************************************************
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_beef){
mat_coeffprice_heifer <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_heifer,
pb_log = pb_log,
plogger = lgr)
}
if(ps_marketchannel == l_constants_progeny_beefOndairy$conv_fattening_calf | ps_marketchannel == l_constants_progeny_beefOndairy$export_calf){
mat_coeffprice_heifer <- read_price_conf_fat(ps_input_file_price = ps_input_file_price_calf,
pb_log = pb_log,
plogger = lgr)
}
# Update price coefficient for bull
### # For carcass conformation C
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOndairy$line7,],4)),collapse = " "),
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation H
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOndairy$line6,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line2,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T+
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOndairy$line5,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line3,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOndairy$line4,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line4,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation T-
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOndairy$line3,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line5,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation A
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOndairy$line2,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line6,
pb_log = pb_log,
plogger = lgr)
### # For carcass conformation X, XX, XXX
update_input_parameter_file(ps_path2template_input_parameter_file = file.path(ps_path_directory2create,
paste0(ps_sirebreed,"_",ps_dambreed,"_",ps_prodsystew,"_",ps_marketchannel),
tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input_file]),
ps_statement2search = tbl_input_statement_flp_carcass[l_constants_carcass_beefOndairy$idx_row_heifer_coef,l_constants_carcass_beefOndairy$idx_col_input],
ps_value2update = paste0(as.character(round(mat_coeffprice_heifer[l_constants_carcass_beefOndairy$line1,],4)),collapse = " "),
ps_line4statement2update = l_constants_carcass_beefOndairy$line7,
pb_log = pb_log,
plogger = lgr)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.