From 6c950679a204a4d6000e29b936f79f329316d882 Mon Sep 17 00:00:00 2001
From: gmillot <gael.millot@pasteur.fr>
Date: Wed, 19 Sep 2018 16:01:21 +0200
Subject: [PATCH] v3.0.0 file name change

---
 README.md                    |   10 +-
 cute_little_R_functions.R    | 2153 ++++++++++++++++++++++++++++++++++
 cute_little_R_functions.docx |  Bin 0 -> 168299 bytes
 cute_little_functions.R      | 2152 ---------------------------------
 cute_little_functions.docx   |  Bin 168264 -> 0 bytes
 examples_alone.txt           |    2 +-
 6 files changed, 2159 insertions(+), 2158 deletions(-)
 create mode 100644 cute_little_R_functions.R
 create mode 100644 cute_little_R_functions.docx
 delete mode 100644 cute_little_functions.R
 delete mode 100644 cute_little_functions.docx

diff --git a/README.md b/README.md
index d6acbd5..75c6139 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 #### DESCRIPTION
 
-Cute Little Functions contains 16 functions for R/RStudio that facilitate basic procedures in 1) object analysis, 2) object modification, 3) graphic handling and 4) log file management.
+Cute Little R Functions contains 16 functions for R/RStudio that facilitate basic procedures in 1) object analysis, 2) object modification, 3) graphic handling and 4) log file management.
 The function names are:
 fun_param_check()
 fun_object_info()
@@ -24,19 +24,19 @@ fun_export_data()
 
 Download the desired Tagged version, never the current master.
 
-Source the cute_little_functions.R into R/RStudio to have the functions available in the working environment.
+Source the cute_little_R_functions.R into R/RStudio to have the functions available in the working environment.
 
 Description of the functions is at the beginning of the function body. To obtain it:
 
-	Either read the cute_little_functions.docx (or open the cute_little_functions.R file).
+	Either read the cute_little_functions.docx (or open the cute_little_R_functions.R file).
 	
 	Or in the R/RStudio console, type the name of the function without brackets. Example : fun_object_info.
 
 
 #### FILE DESCRIPTIONS
 
-cute_little_functions.R	file that has to be sourced
-cute_little_functions.docx	just for easier code reading
+cute_little_R_functions.R	file that has to be sourced
+cute_little_R_functions.docx	just for easier code reading
 examples_alone.txt	compile all the examples of each of the 16 functions into a single file
 
 
diff --git a/cute_little_R_functions.R b/cute_little_R_functions.R
new file mode 100644
index 0000000..841d829
--- /dev/null
+++ b/cute_little_R_functions.R
@@ -0,0 +1,2153 @@
+################################################################
+##                                                            ##
+##     CUTE LITTLE R FUNCTIONS v3.0.0                         ##
+##                                                            ##
+##     Gael A. Millot                                         ##
+##                                                            ##
+##     Compatible with R v3.5.1                               ##
+##                                                            ##
+################################################################
+
+
+
+# BEWARE: do not forget to save the modifications in the .R file
+
+
+################################ OUTLINE ################################
+
+
+################ Object analysis    1
+######## fun_param_check() #### Checking class, type, length, etc. of objects   1
+######## fun_object_info() #### Recovering object information   7
+######## fun_1D_comp() #### comparison of two 1D datasets (vectors, factors, 1D tables) 7
+######## fun_2D_comp() #### comparison of two 2D datasets (row & col names, dimensions, etc.)   11
+######## fun_list_comp() #### comparison of two lists   16
+
+################ Object modification    18
+######## fun_dataframe_remodeling() #### remodeling a data frame to have column name as a qualitative column and vice-versa 18
+######## fun_refactorization() #### remove classes that are not anymore present in factors or factor columns in data frames 20
+######## fun_rounding() #### Rounding number if decimal present 22
+######## fun_90clock_matrix_rot() #### 90° clockwise matrix rotation    23
+######## fun_hexa_hsv_color_matrix() #### Conversion of a numeric matrix into hexadecimal color matrix  23
+
+################ Graphics   26
+######## fun_window_width_resizing() #### window width depending on classes to plot 26
+######## fun_open_window() #### Open a GUI or pdf graphic window    27
+######## fun_graph_param_prior_plot() #### Graph param before plotting  30
+######## fun_feature_post_plot() #### Graph param after plotting    33
+######## fun_close_specif_window() #### Closing specific graphic windows    41
+
+################ Exporting results (text & tables)  42
+######## fun_export_data() #### Print string or data object into output file    42
+
+
+################################ FUNCTIONS ################################
+
+
+################ Object analysis
+
+
+######## fun_param_check() #### Checking class, type, length, etc. of objects
+
+
+# Check OK: clear to go Apollo
+fun_param_check <- function(data, data.name = NULL, class = NULL, typeof = NULL, mode = NULL, length = NULL, prop = NULL, double.as.integer.allowed = FALSE, options = NULL, all.options.in.data = FALSE, na.contain = FALSE, neg.values = TRUE, print = TRUE){
+# AIM:
+# Check the class, type, mode and length of the data argument
+# Mainly used to check the arguments of other functions
+# Check also other kind of data parameters, is it a proportion? Is it type double even if it is an integer?
+# If options = NULL, then at least class, type, mode or length must be non null
+# If options is non null, then class, type and mode must be NULL, and length can be NULL or specified
+# REQUIRED FUNCTIONS
+# none
+# ARGUMENTS
+# data: object to test
+# data.name: name of the object to test. If NULL, use the name of the object assigned to the data argument
+# class: one of the class() result
+# typeof: one of the typeof() result
+# mode: one of the mode() result (for non vector object)
+# length: length of the object
+# prop: logical, are the numeric values between 0 and 1 (proportion)?
+# double.as.integer.allowed: logical. If TRUE, no error is reported if argument is set to typeof = "integer" or class = "integer", while the reality is typeof = "double" or class = "numeric" but the numbers have a zero as modulo (remainder of a division). This means that i<-1 , which is typeof(i) -> "double" is considered as integer with double.as.integer.allowed = TRUE
+# options: a vector of possible values for data
+# all.options.in.data: If TRUE, all of the options must be present at least once in data, and nothing else. If FALSE, some of the options must be present in data, and nothing else
+# na.contain: can data contains NA?
+# neg.values: are negative numeric values authorized? BEWARE: only considered if set to FALSE, to check for non negative values when class is set to "numeric", "matrix", "array", "data.frame", "table", or typeof is set to "double", "integer", or mode is set to "numeric"
+# print: print the error message if $problem is TRUE?
+# RETURN
+# a list containing:
+# $problem: logical. Is there any problem detected ?
+# $text: the problem detected
+# $param.name: name of the checked parameter
+# EXAMPLES
+# test <- 1:3 ; fun_param_check(data = test, data.name = NULL, print = TRUE, options = NULL, all.options.in.data = FALSE, class = NULL, typeof = NULL, mode = NULL, prop = TRUE, double.as.integer.allowed = FALSE, length = NULL)
+# test <- 1:3 ; fun_param_check(data = test, print = TRUE, class = "numeric", typeof = NULL, double.as.integer.allowed = FALSE)
+# DEBUGGING
+# data = 1:3 ; data.name = NULL ; print = TRUE; options = NULL ; all.options.in.data = FALSE ; class = "numeric" ; typeof = NULL ; mode = NULL ; prop = NULL ; double.as.integer.allowed = TRUE ; length = NULL # for function debugging
+# argument checking
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev))
+if( ! is.null(data.name)){
+if( ! (length(data.name) == 1 & class(data.name) == "character")){
+tempo.cat <- paste0("\n\n================\n\nERROR: data.name ARGUMENT MUST BE A SINGLE CHARACTER ELEMENT AND NOT ", paste(data.name, collapse = " "), "\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if(is.null(options) & is.null(class) & is.null(typeof) & is.null(mode) & is.null(prop) & is.null(length)){
+tempo.cat <- paste0("\n\n================\n\nERROR: AT LEAST ONE OF THE options, class, typeof, mode, prop, OR length ARGUMENT MUST BE SPECIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! is.null(options) & ( ! is.null(class) | ! is.null(typeof) | ! is.null(mode) | ! is.null(prop))){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE class, typeof, mode AND prop ARGUMENTS MUST BE NULL IF THE option ARGUMENT IS SPECIFIED\nTHE option ARGUMENT MUST BE NULL IF THE class AND/OR typeof AND/OR mode  AND/OR prop ARGUMENT IS SPECIFIED\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! (all(class(neg.values) == "logical") & length(neg.values) == 1 & any(is.na(neg.values)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE neg.values ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
+stop(tempo.cat)
+}
+if(neg.values == FALSE & is.null(class) & is.null(typeof) & is.null(mode)){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE neg.values ARGUMENT CANNOT BE SWITCHED TO FALSE IF class, typeof AND mode ARGUMENTS ARE NULL\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! is.null(class)){
+if( ! all(class %in% c("logical", "integer", "numeric", "complex", "character", "matrix", "array", "data.frame", "list", "factor", "table", "expression", "name", "symbol", "function") & any(is.na(class)) != TRUE)){ # not length == 1 here because ordered factors are class "factor" "ordered" (length == 2)
+tempo.cat <- paste0("\n\n================\n\nERROR: class ARGUMENT MUST BE ONE OF THESE VALUE:\n\"logical\", \"integer\", \"numeric\", \"complex\", \"character\", \"matrix\", \"array\", \"data.frame\", \"list\", \"factor\", \"table\", \"expression\", \"name\", \"symbol\", \"function\" \n\n================\n\n")
+stop(tempo.cat)
+}
+if(neg.values == FALSE & ! any(class %in% c("numeric", "matrix", "array", "data.frame", "table"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: class ARGUMENT CANNOT BE OTHER THAN \"numeric\", \"matrix\", \"array\", \"data.frame\", \"table\" IF neg.values ARGUMENT IS SWITCHED TO FALSE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! is.null(typeof)){
+if( ! (all(typeof %in% c("logical", "integer", "double", "complex", "character", "list", "expression", "name", "symbol", "closure", "special", "builtin")) & length(typeof) == 1 & any(is.na(typeof)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: typeof ARGUMENT MUST BE ONE OF THESE VALUE:\n\"logical\", \"integer\", \"double\", \"complex\", \"character\", \"list\", \"expression\", \"name\", \"symbol\", \"closure\", \"special\", \"builtin\" \n\n================\n\n")
+stop(tempo.cat)
+}
+if(neg.values == FALSE & ! typeof %in% c("double", "integer")){
+tempo.cat <- paste0("\n\n================\n\nERROR: typeof ARGUMENT CANNOT BE OTHER THAN \"double\" OR \"integer\" IF neg.values ARGUMENT IS SWITCHED TO FALSE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! is.null(mode)){
+if( ! (all(mode %in% c("logical", "numeric", "complex", "character", "list", "expression", "name", "symbol", "function")) & length(mode) == 1 & any(is.na(mode)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: mode ARGUMENT MUST BE ONE OF THESE VALUE:\n\"logical\", \"numeric\", \"complex\", \"character\", \"list\", \"expression\", \"name\", \"symbol\", \"function\"\n\n================\n\n")
+stop(tempo.cat)
+}
+if(neg.values == FALSE & mode != "numeric"){
+tempo.cat <- paste0("\n\n================\n\nERROR: mode ARGUMENT CANNOT BE OTHER THAN \"numeric\" IF neg.values ARGUMENT IS SWITCHED TO FALSE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! is.null(length)){
+if( ! (is.numeric(length) & length(length) == 1 & ! grepl(length, pattern = "\\.") & any(is.na(length)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: length ARGUMENT MUST BE A SINGLE INTEGER VALUE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! is.null(prop)){
+if( ! (is.logical(prop) | length(prop) == 1 & any(is.na(prop)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: prop ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
+stop(tempo.cat)
+}else if(prop == TRUE){
+if( ! is.null(class)){
+if( ! any(class %in% c("numeric", "matrix", "array", "data.frame", "table"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: class ARGUMENT CANNOT BE OTHER THAN \"numeric\", \"matrix\", \"array\", \"data.frame\", \"table\" IF prop ARGUMENT IS TRUE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! is.null(mode)){
+if(mode != "numeric"){
+tempo.cat <- paste0("\n\n================\n\nERROR: mode ARGUMENT CANNOT BE OTHER THAN \"numeric\" IF prop ARGUMENT IS TRUE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! is.null(typeof)){
+if(typeof != "double"){
+tempo.cat <- paste0("\n\n================\n\nERROR: typeof ARGUMENT CANNOT BE OTHER THAN \"double\" IF prop ARGUMENT IS TRUE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+}
+}
+if( ! (all(class(double.as.integer.allowed) == "logical") & length(double.as.integer.allowed) == 1 & any(is.na(double.as.integer.allowed)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE double.as.integer.allowed ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! (is.logical(all.options.in.data) & length(all.options.in.data) == 1 & any(is.na(all.options.in.data)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: all.options.in.data ARGUMENT MUST BE A SINGLE LOGICAL VALUE (TRUE OR FALSE ONLY)\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! (all(class(na.contain) == "logical") & length(na.contain) == 1 & any(is.na(na.contain)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE na.contain ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! (all(class(print) == "logical") & length(print) == 1 & any(is.na(print)) != TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE print ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
+stop(tempo.cat)
+}
+# end argument checking
+if(is.null(data.name)){
+data.name <- deparse(substitute(data))
+}
+problem <- FALSE
+text <- paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER")
+if( ! is.null(options)){
+text <- ""
+if( ! all(data %in% options)){
+problem <- TRUE
+text <- paste0("PROBLEM: THE ", data.name, " PARAMETER MUST BE SOME OF THESE OPTIONS: ", paste(options, collapse = " "), "\nTHE PROBLEMATIC ELEMENTS OF ", data.name, " ARE: ", paste(unique(data[ ! (data %in% options)]), collapse = " "))
+}
+if(all.options.in.data == TRUE){
+if( ! all(options %in% data)){
+problem <- TRUE
+if(text == ""){
+text <- paste0("PROBLEM: THE ", data.name, " PARAMETER MUST BE SOME OF THESE OPTIONS: ", paste(options, collapse = " "), "\nTHE PROBLEMATIC ELEMENTS OF ", data.name, " ARE: ", unique(data[ ! (data %in% options)]))
+}else{
+text <- paste0(text, "\nPROBLEM: THE ", data.name, " PARAMETER MUST BE SOME OF THESE OPTIONS: ", paste(options, collapse = " "), "\nTHE PROBLEMATIC ELEMENTS OF ", data.name, " ARE: ", unique(data[ ! (data %in% options)]))
+}
+}
+}
+if( ! is.null(length)){
+if(length(data) != length){
+problem <- TRUE
+if(text == ""){
+text <- paste0("PROBLEM: THE LENGTH OF ", data.name, " MUST BE ", length, " AND NOT ", length(data))
+}else{
+text <- paste0(text, "\nPROBLEM: THE LENGTH OF ", data.name, " MUST BE ", length, " AND NOT ", length(data))
+}
+}
+}
+if(text == ""){
+text <- paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER")
+}
+}
+arg.names <- c("class", "typeof", "mode", "length")
+if(is.null(options)){
+for(i2 in 1:length(arg.names)){
+if( ! is.null(get(arg.names[i2]))){
+# script to execute
+tempo.script <- '
+problem <- TRUE ;
+if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
+text <- paste0("PROBLEM: THE ", data.name, " PARAMETER MUST BE ") ;
+}else{
+text <- paste0(text, " AND "); 
+}
+text <- paste0(text, toupper(arg.names[i2]), " ", get(arg.names[i2]))
+'
+if(typeof(data) == "double" & double.as.integer.allowed == TRUE & ((arg.names[i2] == "class" & get(arg.names[i2]) == "integer") | (arg.names[i2] == "typeof" & get(arg.names[i2]) == "integer"))){
+if(! all(data%%1 == 0)){ # to check integers (use %%, meaning the remaining of a division): see the precedent line
+eval(parse(text = tempo.script)) # execute tempo.script
+}
+}else if(eval(parse(text = paste0(arg.names[i2], "(data)"))) != get(arg.names[i2])){
+eval(parse(text = tempo.script)) # execute tempo.script
+}
+}
+}
+}
+if( ! is.null(prop)){
+if(prop == TRUE){
+if(any(data < 0 | data > 1, na.rm = TRUE)){
+problem <- TRUE
+if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
+text <- paste0("PROBLEM: ")
+}else{
+text <- paste0(text, " AND ")
+}
+text <- paste0(text, "THE ", data.name, " PARAMETER MUST BE DECIMAL VALUES BETWEEN 0 AND 1")
+}
+}
+}
+if(na.contain == FALSE & any(is.na(data)) == TRUE){
+problem <- TRUE
+if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
+text <- paste0("PROBLEM: ")
+}else{
+text <- paste0(text, " AND ")
+}
+text <- paste0(text, "THE ", data.name, " PARAMETER CONTAINS NA WHILE NOT AUTHORIZED (na.contain ARGUMENT SET TO FALSE)")
+}
+if(neg.values == FALSE){
+if(any(data < 0, na.rm = TRUE)){
+problem <- TRUE
+if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
+text <- paste0("PROBLEM: ")
+}else{
+text <- paste0(text, " AND ")
+}
+text <- paste0(text, "THE ", data.name, " PARAMETER MUST NON NEGATIVE NUMERIC VALUES")
+}
+}
+if(print == TRUE & problem == TRUE){
+cat(paste0("\n\n================\n\n", text, "\n\n================\n\n"))
+}
+output <- list(problem = problem, text = text, param.name = data.name)
+return(output)
+}
+
+
+######## fun_object_info() #### Recovering object information
+
+
+# Check OK: clear to go Apollo
+fun_object_info <- function(data){
+# AIM:
+# provide a full description of the object
+# REQUIRED FUNCTIONS
+# none
+# ARGUMENTS
+# data: object to test
+# RETURN
+# a list containing the info
+# EXAMPLES
+# fun_object_info(data = 1:3)
+# DEBUGGING
+# data = NULL # for function debugging
+# data = 1:3 # for function debugging
+# data = matrix(1:3) # for function debugging
+# data = data.frame(a = 1:3) # for function debugging
+# data = factor(1:3) # for function debugging
+# data = list(1:3) # for function debugging
+# argument checking
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# end argument checking
+data.name <- deparse(substitute(data))
+output <- list("FILE_NAME" = data.name)
+tempo <- list("FILE_HEAD" = head(data))
+output <- c(output, tempo)
+if( ! is.null(data)){
+tempo <- list("FILE_TAIL" = tail(data))
+output <- c(output, tempo)
+if( ! is.null(dim(data))){
+tempo <- list("FILE_DIMENSION" = dim(data))
+names(tempo[[1]]) <- c("NROW", "NCOL")
+output <- c(output, tempo)
+}
+tempo <- list("SUMMARY" = summary(data))
+output <- c(output, tempo)
+}
+if(class(data) == "data.frame" | class(data) == "matrix"){
+tempo <- list("COLUM_NAMES" = names(data))
+output <- c(output, tempo)
+}
+if(class(data) == "data.frame"){
+tempo <- list("STRUCTURE" = ls.str(data))
+output <- c(output, tempo)
+tempo <- list("COLUMN_TYPE" = sapply(data, FUN = "typeof"))
+output <- c(output, tempo)
+}
+if(class(data) == "list"){
+tempo <- list("COMPARTMENT_NAMES" = names(data))
+output <- c(output, tempo)
+}
+return(output)
+}
+
+
+######## fun_1D_comp() #### comparison of two 1D datasets (vectors, factors, 1D tables)
+
+
+# Check OK: clear to go Apollo
+fun_1D_comp <- function(data1, data2){
+# AIM:
+# compare two 1D datasets (vector of factor or 1D table) of the same class or not. Check and report in a list if the 2 datasets have:
+# same class
+# common elements
+# common element names (except factors)
+# common levels (factors only)
+# REQUIRED FUNCTIONS
+# none
+# ARGUMENTS
+# data1: vector or factor or 1D table
+# data2: vector or factor or 1D table
+# RETURN
+# a list containing:
+# $same.class: logical. Are class identical?
+# $class: class of the 2 datasets (NULL otherwise)
+# $same.length: logical. Are number of elements identical?
+# $length: number of elements in the 2 datasets (NULL otherwise)
+# $same.levels: logical. Are levels identical? (NULL if data1 and data2 are not factors)
+# $levels: levels of the 2 datasets if identical (NULL otherwise or NULL if data1 and data2 are not factors)
+# $any.id.levels: logical. Is there any identical levels? (NULL if data1 and data2 are not factors)
+# $same.levels.pos1: position, in data1, of the levels identical in data2 (NULL if data1 and data2 are not factors)
+# $same.levels.pos2: position, in data2, of the levels identical in data1 (NULL if data1 and data2 are not factors)
+# $common.levels: common levels between data1 and data2 (can be a subset of $levels or not). NULL if no common levels or if data1 and data2 are not factors
+# $same.name: logical. Are element names identical ?
+# $name: name of elements of the 2 datasets if identical (NULL otherwise)
+# $any.id.name: logical. Is there any element names identical ?
+# $same.name.pos1: position, in data1, of the element names identical in data2
+# $same.name.pos2: position, in data2, of the elements names identical in data1
+# $common.names: common element names between data1 and data2 (can be a subset of $name or not). NULL if no common element names
+# $any.id.element: logical. is there any identical elements ?
+# $same.element.pos1: position, in data1, of the elements identical in data2
+# $same.element.pos2: position, in data2, of the elements identical in data1
+# $common.elements: common elements between data1 and data2. NULL if no common elements
+# $identical.object: logical. Are objects identical (kind of object, element names and content)?
+# $identical.content: logical. Are content objects identical (identical elements excluding kind of object and element names)?
+# EXAMPLES
+# obs1 = 1:5 ; obs2 = 1:5 ; names(obs1) <- LETTERS[1:5] ; names(obs2) <- LETTERS[1:5] ; fun_1D_comp(obs1, obs2)
+# obs1 = 1:5 ; obs2 = 1:5 ; names(obs1) <- LETTERS[1:5] ; fun_1D_comp(obs1, obs2)
+# obs1 = 1:5 ; obs2 = 3:6 ; names(obs1) <- LETTERS[1:5] ; names(obs2) <- LETTERS[1:4] ; fun_1D_comp(obs1, obs2)
+# obs1 = factor(LETTERS[1:5]) ; obs2 = factor(LETTERS[1:5]) ; fun_1D_comp(obs1, obs2)
+# obs1 = factor(LETTERS[1:5]) ; obs2 = factor(LETTERS[10:11]) ; fun_1D_comp(obs1, obs2)
+# obs1 = factor(LETTERS[1:5]) ; obs2 = factor(LETTERS[4:7]) ; fun_1D_comp(obs1, obs2)
+# obs1 = 1:5 ; obs2 = factor(LETTERS[1:5]) ; fun_1D_comp(obs1, obs2)
+# obs1 = 1:5 ; obs2 = 1.1:6.1 ; fun_1D_comp(obs1, obs2)
+# obs1 = as.table(1:5); obs2 = as.table(1:5) ; fun_1D_comp(obs1, obs2)
+# obs1 = as.table(1:5); obs2 = 1:5 ; fun_1D_comp(obs1, obs2)
+# DEBUGGING
+# data1 = 1:5 ; data2 = 1:5 ; names(data1) <- LETTERS[1:5] ; names(data2) <- LETTERS[1:5] # for function debugging
+# argument checking
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+if( ! any(class(data1) %in% c("logical", "integer", "numeric", "character", "factor", "table"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A NON NULL VECTOR, FACTOR OR 1D TABLE\n\n================\n\n")
+stop(tempo.cat)
+}else if(all(class(data1) %in% "table")){
+if(length(dim(data1)) > 1){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A 1D TABLE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! any(class(data2) %in% c("logical", "integer", "numeric", "character", "factor", "table"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A NON NULL VECTOR, FACTOR OR 1D TABLE\n\n================\n\n")
+stop(tempo.cat)
+}else if(all(class(data2) %in% "table")){
+if(length(dim(data2)) > 1){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A 1D TABLE\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+# end argument checking
+same.class <- NULL
+class <- NULL
+same.length <- NULL
+length <- NULL
+same.levels <- NULL
+levels <- NULL
+any.id.levels <- NULL
+same.levels.pos1 <- NULL
+same.levels.pos2 <- NULL
+common.levels <- NULL
+same.name <- NULL
+name <- NULL
+any.id.name <- NULL
+same.name.pos1 <- NULL
+same.name.pos2 <- NULL
+common.names <- NULL
+any.id.element <- NULL
+same.element.pos1 <- NULL
+same.element.pos2 <- NULL
+common.elements <- NULL
+identical.object <- NULL
+identical.content <- NULL
+if(identical(data1, data2)){
+same.class <- TRUE
+class <- class(data1)
+same.length <- TRUE
+length <- length(data1)
+if(any(class(data1) %in% "factor")){
+same.levels <- TRUE
+levels <- levels(data1)
+any.id.levels <- TRUE
+same.levels.pos1 <- 1:length(levels(data1))
+same.levels.pos2 <- 1:length(levels(data2))
+common.levels <- levels(data1)
+}
+if( ! is.null(names(data1))){
+same.name <- TRUE
+name <- names(data1)
+any.id.name <- TRUE
+same.name.pos1 <- 1:length(data1)
+same.name.pos2 <- 1:length(data2)
+common.names <- names(data1)
+}
+any.id.element <- TRUE
+same.element.pos1 <- 1:length(data1)
+same.element.pos2 <- 1:length(data2)
+common.elements <- data1
+identical.object <- TRUE
+identical.content <- TRUE
+}else{
+identical.object <- FALSE
+if( ! identical(class(data1), class(data2))){
+same.class <- FALSE
+}else{
+same.class <- TRUE
+class <- class(data1)
+}
+if( ! identical(length(data1), length(data2))){
+same.length<- FALSE
+}else{
+same.length<- TRUE
+length <- length(data1)
+}
+if(any(class(data1) %in% "factor") & any(class(data2) %in% "factor")){
+if( ! identical(levels(data1), levels(data2))){
+same.levels <- FALSE
+}else{
+same.levels <- TRUE
+levels <- levels(data1)
+}
+any.id.levels <- FALSE
+if(any(levels(data1) %in% levels(data2))){
+any.id.levels <- TRUE
+same.levels.pos1 <- which(levels(data1) %in% levels(data2))
+}
+if(any(levels(data2) %in% levels(data1))){
+any.id.levels <- TRUE
+same.levels.pos2 <- which(levels(data2) %in% levels(data1))
+}
+if(any.id.levels == TRUE){
+common.levels <- unique(c(levels(data1)[same.levels.pos1], levels(data2)[same.levels.pos2]))
+}
+}
+if(any(class(data1) %in% "factor")){ # to compare content
+data1 <- as.character(data1)
+}
+if(any(class(data2) %in% "factor")){ # to compare content
+data2 <- as.character(data2)
+}
+if( ! (is.null(names(data1)) & is.null(names(data2)))){
+if( ! identical(names(data1), names(data2))){
+same.name <- FALSE
+}else{
+same.name <- TRUE
+name <- names(data1)
+}
+any.id.name <- FALSE
+if(any(names(data1) %in% names(data2))){
+any.id.name <- TRUE
+same.name.pos1 <- which(names(data1) %in% names(data2))
+}
+if(any(names(data2) %in% names(data1))){
+any.id.name <- TRUE
+same.name.pos2 <- which(names(data2) %in% names(data1))
+}
+if(any.id.name == TRUE){
+common.names <- unique(c(names(data1)[same.name.pos1], names(data2)[same.name.pos2]))
+}
+}
+any.id.element <- FALSE
+if(any(data1 %in% data2)){
+any.id.element <- TRUE
+same.element.pos1 <- which(data1 %in% data2)
+}
+if(any(data2 %in% data1)){
+any.id.element <- TRUE
+same.element.pos2 <- which(data2 %in% data1)
+}
+if(any.id.element == TRUE){
+common.elements <- unique(c(data1[same.element.pos1], data2[same.element.pos2]))
+}
+if(same.length == TRUE & ! all(is.null(same.element.pos1), is.null(same.element.pos2))){
+names(same.element.pos1) <- NULL
+names(same.element.pos2) <- NULL
+if(identical(same.element.pos1, same.element.pos2)){
+identical.content <- TRUE
+}else{
+identical.content <- FALSE
+}
+}else{
+identical.content <- FALSE
+}
+}
+output <- list(same.class = same.class, class = class, same.length = same.length, length = length, same.levels = same.levels, levels = levels, any.id.levels = any.id.levels, same.levels.pos1 = same.levels.pos1, same.levels.pos2 = same.levels.pos2, common.levels = common.levels, same.name = same.name, name = name, any.id.name = any.id.name, same.name.pos1 = same.name.pos1, same.name.pos2 = same.name.pos2, common.names = common.names, any.id.element = any.id.element, same.element.pos1 = same.element.pos1, same.element.pos2 = same.element.pos2, common.elements = common.elements, identical.object = identical.object, identical.content = identical.content)
+return(output)
+}
+
+
+######## fun_2D_comp() #### comparison of two 2D datasets (row & col names, dimensions, etc.)
+
+
+# Check OK: clear to go Apollo
+fun_2D_comp <- function(data1, data2){
+# AIM:
+# compare two 2D datasets of the same class or not. Check and report in a list if the 2 datasets have:
+# same class
+# common row names
+# common column names
+# same row number
+# same column number
+# potential identical rows between the 2 datasets
+# potential identical columns between the 2 datasets
+# REQUIRED FUNCTIONS
+# none
+# ARGUMENTS
+# data1: matrix, data frame or table
+# data2: matrix, data frame or table
+# RETURN
+# a list containing:
+# $same.class: logical. Are class identical ?
+# $class: classes of the 2 datasets (NULL otherwise)
+# $same.dim: logical. Are dimension identical ?
+# $dim: dimension of the 2 datasets (NULL otherwise)
+# $same.row.nb: logical. Are number of rows identical ?
+# $row.nb: nb of rows of the 2 datasets if identical (NULL otherwise)
+# $same.col.nb: logical. Are number of columns identical ?
+# $col.nb: nb of columns of the 2 datasets if identical (NULL otherwise)
+# $same.row.name: logical. Are row names identical ?
+# $row.name: name of rows of the 2 datasets if identical (NULL otherwise)
+# $same.col.name: logical. Are column names identical ?
+# $col.name: name of columns of the 2 datasets if identical (NULL otherwise)
+# $any.id.row: logical. is there identical rows ?
+# $same.row.pos1: position, in data1, of the rows identical in data2
+# $same.row.pos2: position, in data2, of the rows identical in data1
+# $any.id.col: logical. is there identical columns ?
+# $same.col.pos1: position in data1 of the cols identical in data2
+# $same.col.pos2: position in data2 of the cols identical in data1
+# $identical.object: logical. Are objects identical (including row & column names)?
+# $identical.content: logical. Are content objects identical (identical excluding row & column names)?
+# EXAMPLES
+# obs1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; obs2 = as.data.frame(matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5]))) ; fun_2D_comp(obs1, obs2)
+# DEBUGGING
+# data1 = matrix(1:10, ncol = 5) ; data2 = matrix(1:10, ncol = 5) # for function debugging
+# data1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; data2 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
+# data1 = matrix(1:15, byrow = TRUE, ncol = 5, dimnames = list(letters[1:3], LETTERS[1:5])) ; data2 = matrix(1:10, byrow = TRUE, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
+# data1 = matrix(1:15, ncol = 5, dimnames = list(letters[1:3], LETTERS[1:5])) ; data2 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
+# data1 = matrix(1:15, ncol = 5, dimnames = list(paste0("A", letters[1:3]), LETTERS[1:5])) ; data2 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
+# data1 = matrix(1:15, ncol = 5, dimnames = list(letters[1:3], LETTERS[1:5])) ; data2 = matrix(1:12, ncol = 4, dimnames = list(letters[1:3], LETTERS[1:4])) # for function debugging
+# data1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; data2 = matrix(101:110, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
+# data1 = data.frame(a = 1:3, b= letters[1:3], row.names = LETTERS[1:3]) ; data2 = data.frame(A = 1:3, B= letters[1:3]) # for function debugging
+# data1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; data2 = as.data.frame(matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5]))) # for function debugging
+# data1 = table(Exp1 = c("A", "A", "A", "B", "B", "B"), Exp2 = c("A1", "B1", "A1", "C1", "C1", "B1")) ; data2 = data.frame(A = 1:3, B= letters[1:3]) # for function debugging
+# argument checking
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+if( ! any(class(data1) %in% c("matrix", "data.frame", "table"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A MATRIX, DATA FRAME OR TABLE\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! any(class(data2) %in% c("matrix", "data.frame", "table"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A MATRIX, DATA FRAME OR TABLE\n\n================\n\n")
+stop(tempo.cat)
+}
+# end argument checking
+same.class <- NULL
+class <- NULL
+same.dim <- NULL
+dim <- NULL
+same.row.nb <- NULL
+row.nb <- NULL
+same.col.nb <- NULL
+col.nb <- NULL
+same.row.name <- NULL
+row.name <- NULL
+same.col.name <- NULL
+col.name <- NULL
+any.id.row <- NULL
+same.row.pos1 <- NULL
+same.row.pos2 <- NULL
+any.id.col <- NULL
+same.col.pos1 <- NULL
+same.col.pos2 <- NULL
+identical.object <- NULL
+identical.content <- NULL
+if(identical(data1, data2) & any(class(data1) %in% c("matrix", "data.frame", "table"))){
+same.class <- TRUE
+class <- class(data1)
+same.dim <- TRUE
+dim <- dim(data1)
+same.row.nb <- TRUE
+row.nb <- nrow(data1)
+same.col.nb <- TRUE
+col.nb <- ncol(data1)
+same.row.name <- TRUE
+row.name <- dimnames(data1)[[1]]
+same.col.name <- TRUE
+col.name <- dimnames(data1)[[2]]
+any.id.row <- TRUE
+same.row.pos1 <- 1:row.nb
+same.row.pos2 <- 1:row.nb
+any.id.col <- TRUE
+same.col.pos1 <- 1:col.nb
+same.col.pos2 <- 1:col.nb
+identical.object <- TRUE
+identical.content <- TRUE
+}else{
+identical.object <- FALSE
+if(all(class(data1) == "table") & length(dim(data1)) == 1){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT IS A 1D TABLE. USE THE info_1D_dataset_fun FUNCTION\n\n================\n\n")
+stop(tempo.cat)
+}
+if(all(class(data2) == "table") & length(dim(data2)) == 1){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT IS A 1D TABLE. USE THE info_1D_dataset_fun FUNCTION\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! identical(class(data1), class(data2))){
+same.class <- FALSE
+}else if( ! any(class(data1) %in% c("matrix", "data.frame", "table"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 AND data2 ARGUMENTS MUST BE EITHER MATRIX, DATA FRAME OR TABLE\n\n================\n\n")
+stop(tempo.cat)
+}else{
+same.class <- TRUE
+class <- class(data1)
+}
+if( ! identical(dim(data1), dim(data2))){
+same.dim <- FALSE
+}else{
+same.dim <- TRUE
+dim <- dim(data1)
+}
+if( ! identical(nrow(data1), nrow(data2))){
+same.row.nb <- FALSE
+}else{
+same.row.nb <- TRUE
+row.nb <- nrow(data1)
+}
+if( ! identical(ncol(data1), ncol(data2))){
+same.col.nb <- FALSE
+}else{
+same.col.nb <- TRUE
+col.nb <- ncol(data1)
+}
+# row and col names
+if(is.null(dimnames(data1)) & is.null(dimnames(data2))){
+same.row.name <- TRUE
+same.col.name <- TRUE
+# row and col names remain NULL
+}else if((is.null(dimnames(data1)) &  ! is.null(dimnames(data2))) | ( ! is.null(dimnames(data1)) & is.null(dimnames(data2)))){
+same.row.name <- FALSE
+same.col.name <- FALSE
+# row and col names remain NULL
+}else{
+if( ! identical(dimnames(data1)[[1]], dimnames(data2)[[1]])){
+same.row.name <- FALSE
+# row names remain NULL
+}else{
+same.row.name <- TRUE
+row.name <- dimnames(data1)[[1]]
+}
+if( ! identical(dimnames(data1)[[2]], dimnames(data2)[[2]])){
+same.col.name <- FALSE
+# col names remain NULL
+}else{
+same.col.name <- TRUE
+col.name <- dimnames(data1)[[2]]
+}
+}
+# identical row and col content
+if(all(class(data1) == "table")){
+as.data.frame(matrix(data1, ncol = ncol(data1)), stringsAsFactors = FALSE)
+}else if(all(class(data1) == "matrix")){
+data1 <- as.data.frame(data1, stringsAsFactors = FALSE)
+}else if(all(class(data1) == "data.frame")){
+data1 <- data.frame(lapply(data1, as.character), stringsAsFactors=FALSE)
+}
+if(all(class(data2) == "table")){
+as.data.frame(matrix(data2, ncol = ncol(data2)), stringsAsFactors = FALSE)
+}else if(all(class(data2) == "matrix")){
+data2 <- as.data.frame(data2, stringsAsFactors = FALSE)
+}else if(all(class(data2) == "data.frame")){
+data2 <- data.frame(lapply(data2, as.character), stringsAsFactors=FALSE)
+}
+row.names(data1) <- paste0("A", 1:nrow(data1))
+row.names(data2) <- paste0("A", 1:nrow(data2))
+if(same.col.nb == TRUE){ # because if not the same col nb, the row cannot be identical
+same.row.pos1 <- suppressWarnings(which(mapply(FUN = identical, c(as.data.frame(t(data1), stringsAsFactors = FALSE)), c(as.data.frame(t(data2), stringsAsFactors = FALSE)))))
+same.row.pos2 <- suppressWarnings(which(mapply(FUN = identical, c(as.data.frame(t(data2), stringsAsFactors = FALSE)), c(as.data.frame(t(data1), stringsAsFactors = FALSE)))))
+names(same.row.pos1) <- NULL
+names(same.row.pos2) <- NULL
+if(all(is.na(same.row.pos1))){
+same.row.pos1 <- NULL
+}else{
+same.row.pos1 <- same.row.pos1[ ! is.na(same.row.pos1)]
+any.id.row <- TRUE
+}
+if(all(is.na(same.row.pos2))){
+same.row.pos2 <- NULL
+}else{
+same.row.pos2 <- same.row.pos2[ ! is.na(same.row.pos2)]
+any.id.row <- TRUE
+}
+if(is.null(same.row.pos1) & is.null(same.row.pos2)){
+any.id.row <- FALSE
+}
+}else{
+any.id.row <- FALSE
+# same.row.pos1 and 2 remain NULL
+}
+if(same.row.nb == TRUE){ # because if not the same row nb, the col cannot be identical
+same.col.pos1 <- suppressWarnings(which(mapply(FUN = identical, c(data1), c(data2))))
+same.col.pos2 <- suppressWarnings(which(mapply(FUN = identical, c(data2), c(data1))))
+names(same.col.pos1) <- NULL
+names(same.col.pos2) <- NULL
+if(all(is.na(same.col.pos1))){
+same.col.pos1 <- NULL
+}else{
+same.col.pos1 <- same.col.pos1[ ! is.na(same.col.pos1)]
+any.id.col <- TRUE
+}
+if(all(is.na(same.col.pos2))){
+same.col.pos2 <- NULL
+}else{
+same.col.pos2 <- same.col.pos2[ ! is.na(same.col.pos2)]
+any.id.col <- TRUE
+}
+if(is.null(same.col.pos1) & is.null(same.col.pos2)){
+any.id.col <- FALSE
+}
+}else{
+any.id.col <- FALSE
+# same.col.pos1 and 2 remain NULL
+}
+if(same.dim == TRUE & ! all(is.null(same.row.pos1), is.null(same.row.pos2), is.null(same.col.pos1), is.null(same.col.pos2))){ # same.dim == TRUE means that same.row.nb == TRUE and same.col.nb == TRUE, meaning that row.nb != NULL and col.nb != NULL. Thus, no need to include these checkings
+if(identical(same.row.pos1, 1:row.nb) & identical(same.row.pos2, 1:row.nb) & identical(same.col.pos1, 1:col.nb) & identical(same.col.pos2, 1:col.nb)){
+identical.content <- TRUE
+}
+}else{
+identical.content <- FALSE
+}
+}
+output <- list(same.class = same.class, class = class, same.dim = same.dim, dim = dim, same.row.nb = same.row.nb, row.nb = row.nb, same.col.nb = same.col.nb , col.nb = col.nb, same.row.name = same.row.name, row.name = row.name, same.col.name = same.col.name, col.name = col.name, any.id.row = any.id.row, same.row.pos1 = same.row.pos1, same.row.pos2 = same.row.pos2, any.id.col = any.id.col, same.col.pos1 = same.col.pos1, same.col.pos2 = same.col.pos2, identical.object = identical.object, identical.content = identical.content)
+return(output)
+}
+
+
+######## fun_list_comp() #### comparison of two lists
+
+
+# Check OK: clear to go Apollo
+fun_list_comp <- function(data1, data2){
+# AIM:
+# compare two lists. Check and report in a list if the 2 datasets have:
+# same length
+# common names
+# common compartments
+# REQUIRED FUNCTIONS
+# none
+# ARGUMENTS
+# data1: list
+# data2: list
+# RETURN
+# a list containing:
+# $same.length: logical. Are number of elements identical?
+# $length: number of elements in the 2 datasets (NULL otherwise)
+# $same.name: logical. Are element names identical ?
+# $name: name of elements of the 2 datasets if identical (NULL otherwise)
+# $any.id.name: logical. Is there any element names identical ?
+# $same.name.pos1: position, in data1, of the element names identical in data2
+# $same.name.pos2: position, in data2, of the compartment names identical in data1
+# $any.id.compartment: logical. is there any identical compartments ?
+# $same.compartment.pos1: position, in data1, of the compartments identical in data2
+# $same.compartment.pos2: position, in data2, of the compartments identical in data1
+# $identical.object: logical. Are objects identical (kind of object, compartment names and content)?
+# $identical.content: logical. Are content objects identical (identical compartments excluding compartment names)?
+# EXAMPLES
+# obs1 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; obs2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; fun_list_comp(obs1, obs2)
+# obs1 = list(1:5, LETTERS[1:2]) ; obs2 = list(a = 1:5, b = LETTERS[1:2]) ; fun_list_comp(obs1, obs2)
+# obs1 = list(b = 1:5, c = LETTERS[1:2]) ; obs2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; fun_list_comp(obs1, obs2)
+# obs1 = list(b = 1:5, c = LETTERS[1:2]) ; obs2 = list(LETTERS[5:9], matrix(1:6), 1:5) ; fun_list_comp(obs1, obs2)
+# DEBUGGING
+# data1 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; data2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) # for function debugging
+# data1 = list(a = 1:5, b = LETTERS[1:2]) ; data2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) # for function debugging
+# argument checking
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+if( ! any(class(data1) %in% "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A LIST\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! any(class(data2) %in% "list")){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A LIST\n\n================\n\n")
+stop(tempo.cat)
+}
+# end argument checking
+same.length <- NULL
+length <- NULL
+same.name <- NULL
+name <- NULL
+any.id.name <- NULL
+same.name.pos1 <- NULL
+same.name.pos2 <- NULL
+any.id.compartment <- NULL
+same.compartment.pos1 <- NULL
+same.compartment.pos2 <- NULL
+identical.object <- NULL
+identical.content <- NULL
+if(identical(data1, data2)){
+same.length <- TRUE
+length <- length(data1)
+if( ! is.null(names(data1))){
+same.name <- TRUE
+name <- names(data1)
+any.id.name <- TRUE
+same.name.pos1 <- 1:length(data1)
+same.name.pos2 <- 1:length(data2)
+}
+any.id.compartment <- TRUE
+same.compartment.pos1 <- 1:length(data1)
+same.compartment.pos2 <- 1:length(data2)
+identical.object <- TRUE
+identical.content <- TRUE
+}else{
+identical.object <- FALSE
+if( ! identical(length(data1), length(data2))){
+same.length<- FALSE
+}else{
+same.length<- TRUE
+length <- length(data1)
+}
+if( ! (is.null(names(data1)) & is.null(names(data2)))){
+if( ! identical(names(data1), names(data2))){
+same.name <- FALSE
+}else{
+same.name <- TRUE
+name <- names(data1)
+}
+any.id.name <- FALSE
+if(any(names(data1) %in% names(data2))){
+any.id.name <- TRUE
+same.name.pos1 <- which(names(data1) %in% names(data2))
+}
+if(any(names(data2) %in% names(data1))){
+any.id.name <- TRUE
+same.name.pos2 <- which(names(data2) %in% names(data1))
+}
+}
+names(data1) <- NULL
+names(data2) <- NULL
+any.id.compartment <- FALSE
+if(any(data1 %in% data2)){
+any.id.compartment <- TRUE
+same.compartment.pos1 <- which(data1 %in% data2)
+}
+if(any(data2 %in% data1)){
+any.id.compartment <- TRUE
+same.compartment.pos2 <- which(data2 %in% data1)
+}
+if(same.length == TRUE & ! all(is.null(same.compartment.pos1), is.null(same.compartment.pos2))){
+if(identical(same.compartment.pos1, same.compartment.pos2)){
+identical.content <- TRUE
+}else{
+identical.content <- FALSE
+}
+}else{
+identical.content <- FALSE
+}
+}
+output <- list(same.length = same.length, length = length, same.name = same.name, name = name, any.id.name = any.id.name, same.name.pos1 = same.name.pos1, same.name.pos2 = same.name.pos2, any.id.compartment = any.id.compartment, same.compartment.pos1 = same.compartment.pos1, same.compartment.pos2 = same.compartment.pos2, identical.object = identical.object, identical.content = identical.content)
+return(output)
+}
+
+
+################ Object modification
+
+
+######## fun_dataframe_remodeling() #### remodeling a data frame to have column name as a qualitative column and vice-versa
+
+
+# Check OK: clear to go Apollo
+fun_dataframe_remodeling <- function(data, quanti.col.name = "quanti", quali.col.name = "quali"){
+# AIM:
+# if the data frame is made of numeric columns, a new data frame is created, with the 1st column gathering all the numeric values, and the 2nd column being the name of the columns of the initial data frame
+
+ 
+
+# If the data frame is made of one numeric column and one character or factor column, a new data frame is created, with the new columns corresponding to the split numeric values (according to the character column). NA are added a the end of each column to have the same number of rows
+
+ 
+
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS
+# data: data frame to convert
+# quanti.col.name: optional name for the quanti column of the new data frame
+# quali.col.name: optional name for the quali column of the new data frame
+# RETURN
+# the modified data frame
+# EXAMPLES
+# obs <- data.frame(col1 = (1:4)*10, col2 = c("A", "B", "A", "A")) ; obs ; fun_dataframe_remodeling(obs)
+# obs <- data.frame(col1 = (1:4)*10, col2 = 5:8) ; obs ; fun_dataframe_remodeling(obs, quanti.col.name = "quanti", quali.col.name = "quali")
+# DEBUGGING
+# data = data.frame(a = 1:3, b = 4:6) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
+# data = data.frame(a = 1:3, b = 4:6, c = 11:13) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
+# data = data.frame(a = 1:3, b = letters[1:3]) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
+# data = data.frame(a = 1:3, b = letters[1:3]) ; quanti.col.name = "TEST" ; quali.col.name = "quali" # for function debugging
+# data = data.frame(b = letters[1:3], a = 1:3) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
+# data = data.frame(b = c("e", "e", "h"), a = 1:3) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = quanti.col.name, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = quali.col.name, class = "character", length = 1) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+if( ! any(class(data) %in% "data.frame")){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data ARGUMENT MUST BE A DATA FRAME\n\n================\n\n")
+stop(tempo.cat)
+}
+# end argument checking
+tempo.factor <- unlist(lapply(data, class))
+for(i in 1:length(tempo.factor)){ # convert factor columns as character
+if(all(tempo.factor[i] == "factor")){
+data[, i] <- as.character(data[, i])
+}
+}
+tempo.factor <- unlist(lapply(data, mode))
+if(length(data) == 2){
+if( ! ((mode(data[, 1]) == "character" & mode(data[, 2]) == "numeric") | mode(data[, 2]) == "character" & mode(data[, 1]) == "numeric" | mode(data[, 2]) == "numeric" & mode(data[, 1]) == "numeric") ){
+tempo.cat <- paste0("\n\n================\n\nERROR: IF data ARGUMENT IS A DATA FRAME MADE OF 2 COLUMNS, EITHER A COLUMN MUST BE NUMERIC AND THE OTHER CHARACTER, OR THE TWO COLUMNS MUST BE NUMERIC\n\n================\n\n")
+stop(tempo.cat)
+}
+if((mode(data[, 1]) == "character" | mode(data[, 2]) == "character") & (quanti.col.name != "quanti" | quali.col.name != "quali")){
+tempo.cat <- paste0("\n\n================\n\nERROR: IMPROPER quanti.col.name OR quali.col.name RESETTINGS. THESE ARGUMENTS ARE RESERVED FOR DATA FRAMES MADE OF n NUMERIC COLUMNS ONLY\n\n================\n\n")
+stop(tempo.cat)
+}
+}else{
+if( ! all(tempo.factor %in% "numeric")){
+tempo.cat <- paste0("\n\n================\n\nERROR: IF data ARGUMENT IS A DATA FRAME MADE OF ONE COLUMN, OR MORE THAN 2 COLUMNS, THESE COLUMNS MUST BE NUMERIC\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if(( ! any(tempo.factor %in% "character")) & is.null(names(data))){
+tempo.cat <- paste0("\n\n================\n\nERROR: NUMERIC DATA FRAME in the data ARGUMENT MUST HAVE COLUMN NAMES\n\n================\n\n")
+stop()
+}
+if(all(tempo.factor %in% "numeric")){
+quanti <- NULL
+for(i in 1:length(data)){
+quanti <-c(quanti, data[, i])
+}
+quali <- rep(names(data), each = nrow(data))
+output.data <- data.frame(quanti, quali)
+names(output.data) <- c(quanti.col.name, quali.col.name)
+}else{
+if(class(data[, 1]) == "character"){
+data <- cbind(data[2], data[1])
+}
+nc.max <- max(table(data[, 2])) # effectif maximum des classes
+nb.na <- nc.max - table(data[,2]) # nombre de NA à ajouter pour réaliser la data frame
+tempo<-split(data[, 1], data[, 2])
+for(i in 1:length(tempo)){tempo[[i]] <- append(tempo[[i]], rep(NA, nb.na[i]))} # des NA doivent être ajoutés lorsque les effectifs sont différents entre les classes. C'est uniquement pour que chaque colonne ait le même nombre de lignes
+output.data<-data.frame(tempo)
+}
+return(output.data)
+}
+
+
+######## fun_refactorization() #### remove classes that are not anymore present in factors or factor columns in data frames
+
+
+# Check OK: clear to go Apollo
+fun_refactorization <- function(data, also.ordered = TRUE){
+# AIM:
+# refactorize a factor or the factor columns of a data frame, such as only the class present are in the levels (no empty levels). The class order in levels is kept
+# useful to remove the empty classes after row removing for instance
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS
+# data: factor (ordered or not) or data frame
+# also.ordered: refactorize also ordered factors? This to deal with ordered factors that have class "ordered" "factor"
+# RETURN
+# a list containing:
+# $data: the modified object
+# $removed: the removed classes for a factor and a list of the removed classes for each factor class of the data frame
+# EXAMPLES
+# obs <- data.frame(a = LETTERS[1:6], b = paste0(letters[1.6], c(1,1,2,2,3,3)), c = ordered(LETTERS[7:12]), d = 1:6, e = "A")[-c(1:2),] ; sapply(obs, levels) ; fun_refactorization(obs, FALSE)
+# obs <- data.frame(a = LETTERS[1:6], b = paste0(letters[1.6], c(1,1,2,2,3,3)), c = ordered(LETTERS[7:12]), d = 1:6, e = "A")[-c(1:2),] ; sapply(obs, levels) ; fun_refactorization(obs, TRUE)
+# obs <- factor(LETTERS[1:6])[-c(1:2)] ; obs ; fun_refactorization(obs, TRUE)
+# obs <- ordered(LETTERS[1:6])[-c(1:2)] ; obs ; fun_refactorization(obs, TRUE)
+# obs <- factor(LETTERS[1:6], levels = rev(LETTERS[1:6]))[-c(1:2)] ; obs ; fun_refactorization(obs, FALSE)
+# DEBUGGING
+# data <- data.frame(a = LETTERS[1:6], b = paste0(letters[1.6], c(1,1,2,2,3,3)), c = ordered(LETTERS[7:12]), d = 1:6, e = "A") ; data <- data[-c(1:2),] ; also.ordered <- TRUE # for function debugging
+# data <- factor(LETTERS[1:6])[-c(1:2)] ; also.ordered <- TRUE # for function debugging
+# data <- ordered(LETTERS[1:6])[-c(1:2)] ; also.ordered <- TRUE # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = also.ordered, class = "logical", length = 1) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+if(also.ordered == FALSE){
+if( ! (all(class(data) == "data.frame") | all(class(data) == "factor"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: data ARGUMENT MUST BE A FACTOR (NON ORDERED BECAUSE THE also.ordered ARGUMENT IS SET TO FALSE) OR A DATA FRAME\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if(also.ordered == TRUE){
+if( ! (all(class(data) == "data.frame") | all(class(data) == "factor") | all(class(data) %in% c("ordered", "factor")))){
+tempo.cat <- paste0("\n\n================\n\nERROR: data ARGUMENT MUST BE A FACTOR OR A DATA FRAME\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+# end argument checking
+text <- NULL
+if(all(class(data) == "factor")){
+tempo.keep.log <- levels(data) %in% unique(data)
+text <- levels(data)[ ! tempo.keep.log]
+data <- factor(data, levels = levels(data)[tempo.keep.log])
+}else if(all(class(data) %in% c("ordered", "factor"))){
+tempo.keep.log <- levels(data) %in% unique(data)
+text <- levels(data)[ ! tempo.keep.log]
+data <- ordered(data, levels = levels(data)[tempo.keep.log])
+}else if(all(class(data) == "data.frame")){
+text <- vector("list", length(data))
+names(text) <- names(data)
+tempo.factor.col <- sapply(sapply(lapply(data, class), FUN = "%in%", "factor"), FUN = "all") # get the factor column (logical)
+for(i in 1:length(tempo.factor.col)){
+if(tempo.factor.col[i] == TRUE){
+tempo.keep.log <- levels(data[[i]]) %in% unique(data[[i]])
+text[[i]] <- levels(data[[i]])[ ! tempo.keep.log]
+data[[i]] <- factor(data[[i]], levels = levels(data[[i]])[tempo.keep.log])
+}
+}
+tempo.ordered.col <- sapply(sapply(lapply(data, class), FUN = "%in%", "ordered"), FUN = "any") # get the ordered factor column (logical) if they exist
+if(also.ordered == TRUE){
+for(i in 1:length(tempo.ordered.col)){
+if(tempo.ordered.col[i] == TRUE){
+tempo.keep.log <- levels(data[[i]]) %in% unique(data[[i]])
+text[[i]] <- levels(data[[i]])[ ! tempo.keep.log]
+data[[i]] <- ordered(data[[i]], levels = levels(data[[i]])[tempo.keep.log])
+}
+}
+}
+text <- text[(tempo.factor.col | tempo.ordered.col) & ! (sapply(text, FUN = length) == 0)] # remove the compartments of text that are not modified factors columns of data frame
+}
+output <- list(data = data, removed = text)
+return(output)
+}
+
+
+######## fun_rounding() #### Rounding number if decimal present
+
+
+# Check OK: clear to go Apollo
+fun_rounding <- function(data, dec.nb = 2, after.lead.zero = TRUE){
+# AIM:
+# round a vector of values, if decimal, with the desired number of decimal digits after the decimal leading zeros
+# BEWARE
+# Work well with numbers as character strings, but not always with numerical numbers because of the floating point
+# Numeric values are really truncated from a part of their decimal digits, whatever options(digits) settings
+# ARGUMENTS
+# data: a vector of numbers (numeric or character mode)
+# dec.nb: number of required decimal digits
+# after.lead.zero: logical. If FALSE, rounding is performed for all the decimal numbers, whatever the leading zeros (e.g., 0.123 -> 0.12 and 0.00128 -> 0.00). If TRUE, dec.nb are taken after the leading zeros (e.g., 0.123 -> 0.12 and 0.00128 -> 0.0013)
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# RETURN
+# the modified vector
+# EXAMPLES
+# cat(fun_rounding(data = c(10, 100.001, 333.0001254, 12312.1235), dec.nb = 2, after.lead.zero = FALSE))
+# cat(fun_rounding(data = c("10", "100.001", "333.0001254", "12312.1235"), dec.nb = 2, after.lead.zero = FALSE))
+# DEBUGGING
+# data = data = c(10, 100.001, 333.0001254, 12312.1235) ; dec.nb = 2 ; after.lead.zero = FALSE # # for function debugging
+# data = data = c("10", "100.001", "333.0001254", "12312.1235") ; dec.nb = 2 ; after.lead.zero = TRUE # # for function debugging
+# argument checking
+if( ! (all(typeof(data) == "character") | all(typeof(data) == "double") | all(typeof(data) == "integer"))){
+tempo.cat <- paste0("\n\n================\n\nERROR: data ARGUMENT MUST BE A VECTOR OF NUMBERS (IN NUMERIC OR CHARACTER MODE)\n\n================\n\n")
+stop(tempo.cat)
+}
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = dec.nb, typeof = "integer", length = 1, double.as.integer.allowed = TRUE, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = after.lead.zero, class = "logical", length = 1) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# end argument checking
+tempo <- grepl(x = data, pattern = "\\.") # detection of decimal numbers
+ini.mode <- mode(data)
+data <- as.character(data) # to really truncate decimal digits
+for(i in 1:length(data)){ # scan all the numbers of the vector
+if(tempo[i] == TRUE){ # means decimal number
+if(after.lead.zero == TRUE){
+zero.pos <- unlist(gregexpr(text=data[i], pattern = 0)) # recover all the position of the zeros in the number. -1 if no zeros (do not record the leading and trailing zeros)
+}else{
+zero.pos <- -1 # -1 as if no zero
+}
+dot.pos <- unlist(gregexpr(text=data[i], pattern = "\\.")) # recover all the position of the zeros in the number
+digit.pos <- unlist(gregexpr(text=data[i], pattern = "[[:digit:]]")) # recover all the position of the digits in the number
+dec.pos <- digit.pos[digit.pos > dot.pos]
+count <- 0
+while((dot.pos + count + 1) %in% zero.pos & (dot.pos + count + 1) <= max(dec.pos) & (count + dec.nb) < length(dec.pos)){ # count the number of leading zeros in the decimal part
+count <- count + 1
+}
+data[i] <- formatC(as.numeric(data[i]), digits = (count + dec.nb), format = "f")
+}
+}
+if(ini.mode != "character"){
+data <- as.numeric(data)
+}
+return(data)
+}
+
+
+######## fun_90clock_matrix_rot() #### 90° clockwise matrix rotation
+
+
+# Check OK: clear to go Apollo
+fun_90clock_matrix_rot <- function(data){
+# AIM:
+# 90° clockwise matrix rotation
+# applied twice, the function provide the mirror matrix, according to vertical and horizontal symmetry
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS
+# data: matrix (matrix class)
+# RETURN
+# the modified matrix
+# EXAMPLES
+# obs <- matrix(1:10, ncol = 1) ; obs ; fun_90clock_matrix_rot(obs)
+# obs <- matrix(LETTERS[1:10], ncol = 5) ; obs ; fun_90clock_matrix_rot(obs)
+# DEBUGGING
+# data = matrix(1:10, ncol = 1)
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+if( ! any(class(data) %in% "matrix")){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE data ARGUMENT MUST BE A MATRIX\n\n================\n\n")
+stop(tempo.cat)
+}
+# end argument checking
+for (i in 1:ncol(data)){data[,i] <- rev(data[,i])}
+data <- t(data)
+return(data)
+}
+
+
+######## fun_hexa_hsv_color_matrix() #### Conversion of a numeric matrix into hexadecimal color matrix
+
+
+# Check OK: clear to go Apollo
+fun_hexa_hsv_color_matrix <- function(mat1, mat.hsv.h = TRUE, notch = 1, s = 1, v = 1, forced.color = NULL){
+# AIM:
+# convert a matrix made of numbers into a hexadecimal matrix for rgb colorization
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS:
+# mat1: matrix 1 of non negative numerical values that has to be colored (matrix class). NA allowed
+# mat.hsv.h: logical. Is mat1 the h of hsv colors ? (if TRUE, mat1 must be between zero and 1)
+# notch: single value between 0 and 1 to shift the successive colors on the hsv circle by + notch
+# s: s argument of hsv(). Must be between 0 and 1
+# v: v argument of hsv(). Must be between 0 and 1
+# forced.color: Must be NULL or hexadecimal color code or name given by colors(). The first minimal values of mat1 will be these colors. All the color of mat1 can be forced using this argument
+# RETURN
+# a list containing:
+# $mat1.name: name of mat1
+# $colored.mat: colors of mat1 in hexa
+# $problem: logical. Is any colors of forced.color overlap the colors designed by the function. NULL if forced.color = NULL
+# $text.problem: text when overlapping colors. NULL if forced.color = NULL or problem == FALSE
+# EXAMPLES
+# mat1 = matrix(c(1,1,1,2,1,5,9,NA), ncol = 2) ; dimnames(mat1) <- list(LETTERS[1:4], letters[1:2]) ; fun_hexa_hsv_color_matrix(mat1, mat.hsv.h = FALSE, notch = 1, s = 1, v = 1, forced.color = NULL)
+# DEBUGGING
+# mat1 = matrix(c(1,1,1,2,1,5,9,NA), ncol = 2) ; dimnames(mat1) <- list(LETTERS[1:4], letters[1:2]); mat.hsv.h = FALSE ; notch = 1 ; s = 1 ; v = 1 ; forced.color = c(hsv(1,1,1), hsv(0,0,0)) # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = mat1, mode = "numeric", class = "matrix", na.contain = TRUE, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = mat.hsv.h, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = notch, mode = "numeric", length = 1, prop = TRUE) ; eval(ee)
+tempo <- fun_param_check(data = s, mode = "numeric", length = 1, prop = TRUE) ; eval(ee)
+tempo <- fun_param_check(data = v, mode = "numeric", length = 1, prop = TRUE) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+if(mat.hsv.h == TRUE & fun_param_check(data = mat1, mode = "numeric", prop = TRUE, print = FALSE)$problem == TRUE){
+tempo.cat <- paste0("\n\n================\n\nERROR: mat1 ARGUMENT MUST BE A MATRIX OF PROPORTIONS SINCE THE mat.hsv.h ARGUMENT IS SET TO TRUE\n\n================\n\n")
+stop(tempo.cat)
+}
+if( ! is.null(forced.color)){
+tempo <- fun_param_check(data = forced.color, class = "character")
+if(tempo$problem == TRUE){
+stop()
+}
+if( ! all(forced.color %in% colors() | grepl(pattern = "^#", forced.color))){ # check that all strings of forced.color start by #
+tempo.cat <- paste0("\n\n================\n\nERROR: forced.color ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # AND/OR COLOR NAMES GIVEN BY colors()\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+# end argument checking
+problem <- NULL
+text.problem <- NULL
+mat1.name <- deparse(substitute(mat1))
+# change the scale of the plotted matrix
+if(mat.hsv.h == TRUE){
+if(any(min(mat1, na.rm = TRUE) < 0 | max(mat1, na.rm = TRUE) > 1, na.rm = TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: mat1 MUST BE MADE OF VALUES BETWEEN 0 AND 1 BECAUSE mat.hsv.h ARGUMENT SET TO TRUE\n\n================\n\n")
+stop(tempo.cat)
+}
+}else{
+if(any(mat1 - floor(mat1) > 0, na.rm = TRUE) | any(mat1 == 0, na.rm = TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: mat1 MUST BE MADE OF INTEGER VALUES WITHOUT 0 BECAUSE mat.hsv.h ARGUMENT SET TO FALSE\n\n================\n\n")
+stop(tempo.cat)
+}else{
+mat1 <- mat1 / max(mat1, na.rm = TRUE)
+}
+}
+if(notch != 1){
+different.color <- unique(as.vector(mat1))
+different.color <- different.color[ ! is.na(different.color)]
+tempo.different.color <- different.color + c(0, cumsum(rep(notch, length(different.color) - 1)))
+tempo.different.color <- tempo.different.color - floor(tempo.different.color)
+if(any(duplicated(tempo.different.color) == TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: DUPLICATED VALUES AFTER USING notch (", paste(tempo.different.color[duplicated(tempo.different.color)], collapse = " "), "). TRY ANOTHER notch VALUE\n\n================\n\n")
+stop(tempo.cat)
+}else if(length(different.color) != length(tempo.different.color)){
+tempo.cat <- paste0("\n\n================\n\nERROR: LENGTH OF different.color (", paste(different.color, collapse = " "), ") DIFFERENT FROM LENGTH OF tempo.different.color (", paste(tempo.different.color, collapse = " "), ")\n\n================\n\n")
+stop(tempo.cat)
+}else{
+for(i in 1:length(different.color)){
+mat1[mat1 == different.color[i]] <- tempo.different.color[i]
+}
+}
+}
+if( ! is.null(forced.color)){
+hexa.values.to.change <- hsv(unique(sort(mat1))[1:length(forced.color)], s, v)
+}
+mat1[ ! is.na(mat1)] <- hsv(mat1[ ! is.na(mat1)], s, v)
+if( ! is.null(forced.color)){
+if(any(forced.color %in% mat1, na.rm = TRUE)){
+problem <- TRUE
+text.problem <- paste0("THE FOLLOWING COLORS WHERE INTRODUCED USING forced.color BUT WHERE ALREADY PRESENT IN THE COLORED MATRIX :", paste(forced.color[forced.color %in% mat1], collapse = " "))
+}else{
+problem <- FALSE
+}
+for(i in 1:length(hexa.values.to.change)){
+if( ! any(mat1 == hexa.values.to.change[i], na.rm = TRUE)){
+tempo.cat <- paste0("\n\n================\n\nERROR: THE ", hexa.values.to.change[i], " VALUE FROM hexa.values.to.change IS NOT REPRESENTED IN mat1 : ", paste(unique(as.vector(mat1)), collapse = " "), "\n\n================\n\n")
+stop(tempo.cat)
+}else{
+mat1[which(mat1 == hexa.values.to.change[i])] <- forced.color[i]
+}
+}
+}
+output <- list(mat1.name = mat1.name, colored.mat = mat1, problem = problem, text.problem = text.problem)
+return(output)
+}
+
+
+################ Graphics
+
+
+# this order can be used:
+# fun_window_width_resizing()
+# fun_open_window()
+# fun_graph_param_prior_plot() # not for ggplot2
+# plot() or any other plotting
+# fun_feature_post_plot() if fun_graph_param_prior_plot() has been used # not for ggplot2
+# fun_close_specif_window()
+
+
+######## fun_window_width_resizing() #### window width depending on classes to plot
+
+
+# Check OK: clear to go Apollo
+fun_window_width_resizing <- function(class.nb, inches.per.class.nb = 1, ini.window.width = 7, inch.left.space, inch.right.space, boundarie.space = 0.5){
+# AIM:
+# rescale the width of a window to open depending on the number of classes to plot
+# can be used for height, considering that it is as if it was a width
+# this order can be used:
+# fun_window_width_resizing()
+# fun_open_window()
+# fun_graph_param_prior_plot() # not for ggplot2
+# plot() or any other plotting
+# fun_feature_post_plot() if fun_graph_param_prior_plot() has been used # not for ggplot2
+# fun_close_specif_window()
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS
+# class.nb: number of class to plot
+# inches.per.class.nb: number of inches per unit of class.nb. 2 means 2 inches for each boxplot for instance
+# ini.window.width:initial window width in inches
+# inch.left.space: left horizontal margin of the figure region (in inches)
+# inch.right.space: right horizontal margin of the figure region (in inches)
+# boundarie.space: space between the right and left limits of the plotting region and the plot (0.5 means half a class width)
+# RETURN
+# the new window width in inches
+# EXAMPLES
+# fun_window_width_resizing(class.nb = 10, inches.per.class.nb = 0.2, ini.window.width = 7, inch.left.space = 1, inch.right.space = 1, boundarie.space = 0.5)
+# DEBUGGING
+# class.nb = 10 ; inches.per.class.nb = 0.2 ; ini.window.width = 7 ; inch.left.space = 1 ; inch.right.space = 1 ; boundarie.space = 0.5 # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = class.nb, typeof = "integer", length = 1, double.as.integer.allowed = TRUE, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = inches.per.class.nb, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = ini.window.width, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = inch.left.space, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = inch.right.space, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = boundarie.space, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# end argument checking
+range.max <- class.nb + boundarie.space # the max range of the future plot
+range.min <- boundarie.space # the min range of the future plot
+window.width <- inch.left.space + inch.right.space + inches.per.class.nb * (range.max - range.min)
+return(window.width)
+}
+
+
+######## fun_open_window() #### Open a GUI or pdf graphic window
+
+
+# Check OK: clear to go Apollo
+fun_open_window <- function(pdf.disp = TRUE, path.fun = "working.dir", pdf.name.file = "graph", width.fun = 7, height.fun = 7, paper = "special", no.pdf.overwrite = TRUE, return.output = FALSE){
+# AIM:
+# open a pdf or screen (GUI) graphic window
+# BEWARE: on Linux, use pdf.disp = TRUE, if (GUI) graphic window is not always available, meaning that X is not installed (clusters for instance). Use X11() in R to test if available
+# this order can be used:
+# fun_window_width_resizing()
+# fun_open_window()
+# fun_graph_param_prior_plot() # not for ggplot2
+# plot() or any other plotting
+# fun_feature_post_plot() if fun_graph_param_prior_plot() has been used # not for ggplot2
+# fun_close_specif_window()
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS:
+# pdf.disp: use pdf or not
+# path.fun: where the pdf is saved. Must not finish by a path separator. Write "working.dir" if working directory is required (default)
+# pdf.name.file: name of the pdf file containing the graphs (the .pdf extension is added by the function)
+# width.fun: width of the windows (in inches)
+# height.fun: height of the windows (in inches)
+# paper: paper argument of the pdf function (paper format). Only used for pdf(). Either "a4", "letter", "legal", "us", "executive", "a4r", "USr" or "special". If "special", means that width.fun and height.fun specify the paper size
+# no.pdf.overwrite: existing pdf can be overwritten ? Only used if pdf.disp = TRUE
+# return.output: return output ? If TRUE but function not assigned, the output list is displayed
+# RETURN
+# a list containing:
+# $pdf.loc: path of the pdf created
+# $ini.par: initial par() parameters (to reset in a new graph)
+# $zone.ini: initial window spliting (to reset in a new graph)
+# EXAMPLES
+# fun_open_window(pdf.disp = FALSE, path.fun = "C:/Users/Gael/Desktop", pdf.name.file = "graph", width.fun = 7, height.fun = 7, paper = "special", no.pdf.overwrite = TRUE, return.output = TRUE)
+# DEBUGGING
+# pdf.disp = TRUE ; path.fun = "C:/Users/Gael/Desktop" ; pdf.name.file = "graphs" ; width.fun = 7 ; height.fun = 7 ; paper = "special" ; no.pdf.overwrite = TRUE ; return.output = TRUE # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = pdf.disp, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = path.fun, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = pdf.name.file, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = width.fun, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = height.fun, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = path.fun, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = paper, options = c("a4", "letter", "legal", "us", "executive", "a4r", "USr", "special", "A4", "LETTER", "LEGAL", "US"), length = 1) ; eval(ee)
+tempo <- fun_param_check(data =no.pdf.overwrite, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = return.output, class = "logical", length = 1) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# end argument checking
+if(path.fun == "working.dir"){
+path.fun <- getwd()
+}else{
+if(dir.exists(path.fun) == FALSE){
+tempo.cat <- paste0("\n\n================\n\nERROR: path.fun ARGUMENT DOES NOT CORRESPOND TO EXISTING DIRECTORY\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if(Sys.info()["sysname"] == "Windows"){ # Note that .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
+tempo <- NULL
+windows()
+ini.par <- par(no.readonly = TRUE) # to recover the initial graphical parameters if required (reset)
+invisible(dev.off()) # close the new window
+}else if(Sys.info()["sysname"] == "Linux"){
+if( ! file.exists(paste0(getwd(), "/Rplots.pdf"))){
+tempo <- suppressWarnings(try(X11(), silent = TRUE))[] # open a X11 window or a pdf. So no need to use again X11(). tempo == NULL if no problem, meaning that the X11 window is opened. If tempo != NULL, a pdf is open here paste0(getwd(), "/Rplots.pdf")
+ini.par <- par(no.readonly = TRUE) # recover the initial graphical parameters. Works even if X11 is not working as R opens a pdf
+invisible(dev.off()) # can be used here to close the pdf windows if tempo != NULL and to close the X11 window if tempo == NULL
+}else{
+tempo.cat <- paste0("\n\n================\n\nPROBLEM: THIS FUNCTION CANNOT OPEN GUI ON LINUX OR NON MACOS UNIX SYSTEM (X GRAPHIC INTERFACE HAS TO BE SET.\nTO OVERCOME THIS, PLEASE SET pdf.disp ARGUMENT TO TRUE AND RERUN\n\n================\n\n")
+stop(tempo.cat)
+}
+}else{
+tempo <- NULL
+quartz()
+ini.par <- par(no.readonly = TRUE) # to recover the initial graphical parameters if required (reset)
+invisible(dev.off()) # close the new window
+}
+zone.ini <- matrix(1, ncol=1) # to recover the initial parameters for next figure region when device region split into several figure regions
+if(pdf.disp == TRUE){
+pdf.loc <- paste0(path.fun, "/", pdf.name.file, ".pdf")
+if(file.exists(pdf.loc) == TRUE & no.pdf.overwrite == TRUE){
+tempo.cat <- paste0("\n\n================\n\nERROR: pdf.loc FILE ALREADY EXISTS AND CANNOT BE OVERWRITTEN DUE TO no.pdf.overwrite ARGUMENT SET TO TRUE\n\n================\n\n")
+stop(tempo.cat)
+}else{
+pdf(width = width.fun, height = height.fun, file=pdf.loc, paper = paper)
+}
+}else if(pdf.disp == FALSE){
+pdf.loc <- NULL
+if(Sys.info()["sysname"] == "Windows"){ # .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
+windows(width = width.fun, height = height.fun, rescale="fixed")
+}else if(Sys.info()["sysname"] == "Linux"){
+if( ! is.null(tempo)){
+stop("PROBLEM: THIS FUNCTION CANNOT OPEN GUI ON LINUX OR NON MACOS UNIX SYSTEM (X GRAPHIC INTERFACE HAS TO BE SET.\nTO OVERCOME THIS, PLEASE SET pdf.disp ARGUMENT TO TRUE AND RERUN")
+}else{
+X11(width = width.fun, height = height.fun)
+}
+}else{
+quartz(width = width.fun, height = height.fun)
+}
+}
+if(return.output == TRUE){
+output <- list(pdf.loc = pdf.loc, ini.par = ini.par, zone.ini = zone.ini)
+return(output)
+}
+}
+
+
+######## fun_graph_param_prior_plot() #### Graph param before plotting
+
+
+# Check OK: clear to go Apollo
+fun_graph_param_prior_plot <- function(param.reinitial = FALSE, xlog.scale = FALSE, ylog.scale = FALSE, remove.label = TRUE, remove.x.axis = TRUE, remove.y.axis = TRUE, std.x.range = TRUE, std.y.range = TRUE, down.space = 1, left.space = 1, up.space = 1, right.space = 1, orient = 1, dist.legend = 3.5, tick.length = 0.5, box.type = "n", amplif.label = 1, amplif.axis = 1, display.extend = FALSE, return.par = FALSE){
+# AIM:
+# very convenient to erase the axes for post plot axis redrawing using fun_feature_post_plot()
+# reinitialize and set the graphic parameters before plotting
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS
+# param.reinitial: reinitialize graphic parameters before applying the new ones, as defined by the other arguments? Either TRUE or FALSE
+# xlog.scale: Log scale for the x-axis? Either TRUE or FALSE. If TRUE, erases the x-axis, except legend, for further drawing by fun_feature_post_plot()(xlog argument of par())
+# ylog.scale: Log scale for the y-axis? Either TRUE or FALSE. If TRUE, erases the y-axis, except legend, for further drawing by fun_feature_post_plot()(ylog argument of par())
+# remove.label: remove labels (axis legend) of the two axes? Either TRUE or FALSE (ann argument of par())
+# remove.x.axis: remove x-axis except legend? Either TRUE or FALSE (control the xaxt argument of par()). Automately set to TRUE if xlog.scale == TRUE
+# remove.y.axis: remove y-axis except legend? Either TRUE or FALSE (control the yaxt argument of par()). Automately set to TRUE if ylog.scale == TRUE
+# std.x.range: standard range on the x-axis? TRUE (no range extend) or FALSE (4% range extend). Controls xaxs argument of par() (TRUE is xaxs = "i", FALSE is xaxs = "r")
+# std.y.range: standard range on the y-axis? TRUE (no range extend) or FALSE (4% range extend). Controls yaxs argument of par() (TRUE is yaxs = "i", FALSE is yaxs = "r")
+# down.space: lower vertical margin (in inches, mai argument of par())
+# left.space: left horizontal margin (in inches, mai argument of par())
+# up.space: upper vertical margin between plot region and grapical window (in inches, mai argument of par())
+# right.space: right horizontal margin (in inches, mai argument of par())
+# orient: scale number orientation (las argument of par()). 0, always parallel to the axis; 1, always horizontal; 2, always perpendicular to the axis; 3, always vertical
+# dist.legend: numeric value that moves axis legends away in inches (first number of mgp argument of par() but in inches thus / 0.2)
+# tick.length: length of the ticks (1 means complete the distance between the plot region and the axis numbers, 0.5 means half the length, etc. 0 means no tick
+# box.type: bty argument of par(). Either "o", "l", "7", "c", "u", "]", the resulting box resembles the corresponding upper case letter. A value of "n" suppresses the box
+# amplif.label: increase or decrease the size of the text in legends
+# amplif.axis: increase or decrease the size of the scale numbers in axis
+# display.extend: extend display beyond plotting region? Either TRUE or FALSE (xpd argument of par() without NA)
+# return.par: return graphic parameter modification?
+# RETURN
+# return graphic parameter modification
+# EXAMPLES
+# fun_graph_param_prior_plot(param.reinitial = FALSE, xlog.scale = FALSE, ylog.scale = FALSE, remove.label = TRUE, remove.x.axis = TRUE, remove.y.axis = TRUE, down.space = 1, left.space = 1, up.space = 1, right.space = 1, orient = 1, dist.legend = 4.5, tick.length = 0.5, box.type = "n", amplif.label = 1, amplif.axis = 1, display.extend = FALSE, return.par = FALSE)
+# DEBUGGING
+# param.reinitial = FALSE ; xlog.scale = FALSE ; ylog.scale = FALSE ; remove.label = TRUE ; remove.x.axis = TRUE ; remove.y.axis = TRUE ; down.space = 1 ; left.space = 1 ; up.space = 1 ; right.space = 1 ; orient = 1 ; dist.legend = 4.5 ; tick.length = 0.5 ; box.type = "n" ; amplif.label = 1 ; amplif.axis = 1 ; display.extend = FALSE ; return.par = FALSE # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = param.reinitial, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = xlog.scale, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = ylog.scale, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = remove.label, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = remove.x.axis, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = remove.y.axis, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = std.x.range, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = std.y.range, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = down.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = left.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = up.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = right.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = orient, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = dist.legend, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = tick.length, class = "numeric", length = 1, prop = TRUE) ; eval(ee)
+tempo <- fun_param_check(data = box.type, options = c("o", "l", "7", "c", "u", "]", "n"), length = 1) ; eval(ee)
+tempo <- fun_param_check(data = amplif.label, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = amplif.axis, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = display.extend, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = return.par, class = "logical", length = 1) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# end argument checking
+if(param.reinitial == TRUE){
+if( ! all(names(dev.cur()) == "null device")){
+active.wind.nb <- dev.cur()
+}else{
+active.wind.nb <- 0
+}
+if(Sys.info()["sysname"] == "Windows"){ # Note that .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
+windows()
+}else if(Sys.info()["sysname"] == "Linux"){
+if( ! file.exists(paste0(getwd(), "/Rplots.pdf"))){
+tempo <- suppressWarnings(try(X11(), silent = TRUE))[] # open a X11 window or a pdf. So no need to use again X11(). tempo == NULL if no problem, meaning that the X11 window is opened. If tempo != NULL, a pdf is open here paste0(getwd(), "/Rplots.pdf")
+}else{
+tempo.cat <- paste0("\n\n================\n\nPROBLEM: THIS FUNCTION CANNOT OPEN GUI ON LINUX OR NON MACOS UNIX SYSTEM (X GRAPHIC INTERFACE HAS TO BE SET.\nTO OVERCOME THIS, PLEASE SET pdf.disp ARGUMENT TO TRUE AND RERUN\n\n================\n\n")
+stop(tempo.cat)
+}
+}else{ # macOS
+quartz()
+}
+ini.par <- par(no.readonly = TRUE) # to recover the initial graphical parameters if required (reset)
+invisible(dev.off()) # close the new window
+if( ! all(names(dev.cur()) == "null device")){
+dev.set(active.wind.nb) # go back to the active windows if exists
+par(ini.par) # apply the initial par to current window
+}
+}
+if(remove.x.axis == TRUE){
+par(xaxt = "n") # suppress the y-axis label
+}else{
+par(xaxt = "s")
+}
+if(remove.y.axis == TRUE){
+par(yaxt = "n") # suppress the y-axis label
+}else{
+par(yaxt = "s")
+}
+if(std.x.range == TRUE){
+par(xaxs = "i")
+}else{
+par(xaxs = "r")
+}
+if(std.y.range == TRUE){
+par(yaxs = "i")
+}else{
+par(yaxs = "r")
+}
+par(mai = c(down.space, left.space, up.space, right.space), ann = ! remove.label, las = orient, mgp = c(dist.legend/0.2, 1, 0), xpd = display.extend, bty= box.type, cex.lab = amplif.label, cex.axis = amplif.axis)
+par(tcl = -par()$mgp[2] * tick.length) # tcl gives the length of the ticks as proportion of line text, knowing that mgp is in text lines. So the main ticks are a 0.5 of the distance of the axis numbers by default. The sign provides the side of the tick (negative for outside of the plot region)
+if(xlog.scale == TRUE){
+par(xaxt = "n", xlog = TRUE) # suppress the x-axis label
+}else{
+par(xlog = FALSE)
+}
+if(ylog.scale == TRUE){
+par(yaxt = "n", ylog = TRUE) # suppress the y-axis label
+}else{
+par(ylog = FALSE)
+}
+if(return.par == TRUE){
+tempo.par <- par()
+return(tempo.par)
+}
+}
+
+
+######## fun_feature_post_plot() #### Graph param after plotting
+
+
+# Check OK: clear to go Apollo
+fun_feature_post_plot <- function(x.side = 0, x.log.scale = FALSE, x.categ = NULL, x.categ.pos = NULL, x.lab = "", x.axis.magnific = 1.5, x.label.magnific = 1.5, x.dist.legend = 0.5, x.nb.inter.tick = 1, y.side = 0, y.log.scale = FALSE, y.categ = NULL, y.categ.pos = NULL, y.lab = "", y.axis.magnific = 1.5, y.label.magnific = 1.5, y.dist.legend = 0.5, y.nb.inter.tick = 1, text.angle = 90, tick.length = 0.5, sec.tick.length = 0.3, bg.color = NULL, grid.lwd = NULL, grid.col = "white", corner.text = "", magnific = 1.5, magnific.corner.text = 1, just.label.add = FALSE, par.reset = FALSE, custom.par = NULL){
+# AIM:
+# redesign axis. If x.side = 0, y.side = 0, the function just adds text at topright of the graph and reset par() for next graphics and provides outputs (see below)
+# provide also positions for legend or additional text on the graph
+# use fun_graph_param_prior_plot() before this function for initial inactivation of the axis drawings
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# fun_open_window() to reinitialize graph parameters if par.reset = TRUE and custom.par = NULL
+# ARGUMENTS
+# x.side: axis at the bottom (1) or top (3) of the region figure. Write 0 for no change
+# x.log.scale: Log scale for the x-axis? Either TRUE or FALSE
+# x.categ: character vector representing the classes (levels()) to specify when the x-axis is qualititative(stripchart, boxplot)
+# x.categ.pos: position of the classes names (numeric vector of identical length than x.categ). If left NULL, this will be 1:length(levels())
+# x.lab: label of the x-axis. If x.side == 0 and x.lab != "", then x.lab is printed
+# x.axis.magnific: increase or decrease the value to increase or decrease the size of the x axis numbers. Also control the size of displayed categories
+# x.label.magnific: increase or decrease the value to increase or decrease the size of the x axis legend
+# x.dist.legend: increase the number to move x-axis legends away in inches (first number of mgp argument of par() but in inches)
+# x.nb.inter.tick: number of secondary ticks between main ticks on x-axis (only if not log scale). 0 means no secondary ticks
+# y.side: axis at the left (2) or right (4) of the region figure. Write 0 for no change
+# y.log.scale: Log scale for the y-axis? Either TRUE or FALSE
+# y.categ: classes (levels()) to specify when the y-axis is qualititative(stripchart, boxplot)
+# y.categ.pos: position of the classes names (numeric vector of identical length than y.categ). If left NULL, this will be 1:length(levels())
+# y.lab: label of the y-axis. If y.side == 0 and y.lab != "", then y.lab is printed
+# y.axis.magnific: increase or decrease the value to increase or decrease the size of the y axis numbers. Also control the size of displayed categories
+# y.label.magnific: increase or decrease the value to increase or decrease the size of the y axis legend
+# y.dist.legend: increase the number to move y-axis legends away in inches (first number of mgp argument of par() but in inches)
+# y.nb.inter.tick: number of secondary ticks between main ticks on y-axis (only if not log scale). 0 means non secondary ticks
+# text.angle: angle of the text when axis is qualitative
+# tick.length: length of the main ticks (1 means complete the distance between the plot region and the axis numbers, 0.5 means half the length, etc., 0 for no ticks)
+# sec.tick.length: length of the secondary ticks (1 means complete the distance between the plot region and the axis numbers, 0.5 means half the length, etc., 0 for no ticks)
+# bg.color: background color of the plot region. NULL for no color. BEWARE: cover/hide an existing plot !
+# grid.lwd: if non NULL, activate the grid line (specify the line width)
+# grid.col: grid line color (only if grid.lwd non NULL)
+# corner.text: text to add at the top right corner of the window
+# magnific.corner.text: increase or decrease the size of the text
+# par.reset: to reset all the graphics parameters. BEWARE: TRUE can generate display problems, mainly in graphic devices with multiple figure regions
+# just.label.add: just add axis labels (legend)? Either TRUE or FALSE. If TRUE, at least (x.side == 0 & x.lab != "") or (y.side == 0 & y.lab != "") must be set to display the corresponding x.lab or y.lab
+# custom.par: list that provides the parameters that reset all the graphics parameters. BEWARE: if NULL and par.reset == TRUE, the default par() parameters are used
+# RETURN
+# a list containing: 
+# $x.mid.left.fig.region: middle of the left margin of the figure region, in coordinates of the x-axis
+# $x.left.fig.region: left side of the left margin, in coordinates of the x-axis
+# $x.mid.right.fig.region: middle of the right margin of the figure region, in coordinates of the x-axis
+# $x.right.fig.region: right side of the right margin, in coordinates of the x-axis
+# $x.left.plot.region: left side of the plot region, in coordinates of the x-axis
+# $x.right.plot.region: right side of the plot region, in coordinates of the x-axis
+# $x.mid.plot.region: middle of the plot region, in coordinates of the x-axis
+# $y.mid.bottom.fig.region: middle of the bottom margin of the figure region, in coordinates of the y-axis
+# $y.bottom.fig.region: bottom of the bottom margin of the figure region, in coordinates of the y-axis
+# $y.mid.top.fig.region: middle of the top margin of the figure region, in coordinates of the y-axis
+# $y.top.fig.region: top of the top margin of the figure region, in coordinates of the y-axis
+# $y.top.plot.region: top of the plot region, in coordinates of the y-axis
+# $y.bottom.plot.region: bottom of the plot region, in coordinates of the y-axis
+# $y.mid.plot.region: middle of the plot region, in coordinates of the y-axis
+# $text: warning text
+# EXAMPLES
+# Example of log axis with log y-axis and unmodified x-axis:
+# prior.par <- fun_graph_param_prior_plot(param.reinitial = TRUE, xlog.scale = FALSE, ylog.scale = TRUE, remove.label = TRUE, remove.x.axis = FALSE, remove.y.axis = TRUE, down.space = 1, left.space = 1, up.space = 1, right.space = 1, orient = 1, dist.legend = 0.5, tick.length = 0.5, box.type = "n", amplif.label = 1, amplif.axis = 1, display.extend = FALSE, return.par = TRUE) ; plot(1:100, log = "y") ; fun_feature_post_plot(y.side = 2, y.log.scale = prior.par$ylog, x.lab = "Values", y.lab = "TEST", y.axis.magnific = 1.25, y.label.magnific = 1.5, y.dist.legend = 0.7, just.label.add = ! prior.par$ann)
+# Example of log axis with redrawn x-axis and y-axis:
+# prior.par <- fun_graph_param_prior_plot(param.reinitial = TRUE) ; plot(1:100) ; fun_feature_post_plot(x.side = 1, x.lab = "Values", y.side = 2, y.lab = "TEST", y.axis.magnific = 1, y.label.magnific = 2, y.dist.legend = 0.6)
+# DEBUGGING
+# x.side = 0 ; x.log.scale = FALSE ; x.categ = NULL ; x.categ.pos = NULL ; x.lab = "" ; x.axis.magnific = 1.5 ; x.label.magnific = 1.5 ; x.dist.legend = 1 ; x.nb.inter.tick = 1 ; y.side = 0 ; y.log.scale = FALSE ; y.categ = NULL ; y.categ.pos = NULL ; y.lab = "" ; y.axis.magnific = 1.5 ; y.label.magnific = 1.5 ; y.dist.legend = 0.7 ; y.nb.inter.tick = 1 ; text.angle = 90 ; tick.length = 0.5 ; sec.tick.length = 0.3 ; bg.color = NULL ; grid.lwd = NULL ; grid.col = "white" ; corner.text = "" ; magnific.corner.text = 1 ; just.label.add = FALSE ; par.reset = FALSE ; custom.par = NULL # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+if(length(find("fun_open_window", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_open_window() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = x.side, options = c(0, 1, 3), length = 1) ; eval(ee)
+tempo <- fun_param_check(data = x.log.scale, class = "logical", length = 1) ; eval(ee)
+if( ! is.null(x.categ)){
+tempo <- fun_param_check(data = x.categ, class = "character", na.contain = TRUE) ; eval(ee)
+}
+if( ! is.null(x.categ.pos)){
+tempo <- fun_param_check(data = x.categ.pos, class = "numeric") ; eval(ee)
+}
+tempo <- fun_param_check(data = x.lab, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = x.axis.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = x.label.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = x.dist.legend, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = x.nb.inter.tick, typeof = "integer", length = 1, double.as.integer.allowed = TRUE) ; eval(ee)
+tempo <- fun_param_check(data = y.side, options = c(0, 2, 4), length = 1) ; eval(ee)
+tempo <- fun_param_check(data = y.log.scale, class = "logical", length = 1) ; eval(ee)
+if( ! is.null(y.categ)){
+tempo <- fun_param_check(data = y.categ, class = "character", na.contain = TRUE) ; eval(ee)
+}
+if( ! is.null(y.categ.pos)){
+tempo <- fun_param_check(data = y.categ.pos, class = "numeric") ; eval(ee)
+}
+tempo <- fun_param_check(data = y.lab, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = y.axis.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = y.label.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = y.dist.legend, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = y.nb.inter.tick, typeof = "integer", length = 1, double.as.integer.allowed = TRUE) ; eval(ee)
+tempo <- fun_param_check(data = text.angle, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = tick.length, class = "numeric", length = 1, prop = TRUE) ; eval(ee)
+tempo <- fun_param_check(data = sec.tick.length, class = "numeric", length = 1, prop = TRUE) ; eval(ee)
+if( ! is.null(bg.color)){
+tempo <- fun_param_check(data = bg.color, class = "character", length = 1) ; eval(ee)
+if( ! (bg.color %in% colors() | grepl(pattern = "^#", bg.color))){ # check color
+tempo.cat <- paste0("\n\n================\n\nERROR: bg.color ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # OR A COLOR NAME GIVEN BY colors()\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+if( ! is.null(grid.lwd)){
+tempo <- fun_param_check(data = grid.lwd, class = "numeric", neg.values = FALSE) ; eval(ee)
+}
+if( ! is.null(grid.col)){
+tempo <- fun_param_check(data = grid.col, class = "character", length = 1) ; eval(ee)
+if( ! (grid.col %in% colors() | grepl(pattern = "^#", grid.col))){ # check color
+tempo.cat <- paste0("\n\n================\n\nERROR: grid.col ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # OR A COLOR NAME GIVEN BY colors()\n\n================\n\n")
+stop(tempo.cat)
+}
+}
+tempo <- fun_param_check(data = corner.text, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = magnific.corner.text, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
+tempo <- fun_param_check(data = just.label.add, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = par.reset, class = "logical", length = 1) ; eval(ee)
+if( ! is.null(custom.par)){
+tempo <- fun_param_check(data = custom.par, typeof = "list", length = 1) ; eval(ee)
+}
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# end argument checking
+text <- NULL
+par(tcl = -par()$mgp[2] * tick.length)
+if(x.log.scale == TRUE){
+grid.coord.x <- c(10^par("usr")[1], 10^par("usr")[2])
+}else{
+grid.coord.x <- c(par("usr")[1], par("usr")[2])
+}
+if(y.log.scale == TRUE){
+grid.coord.y <- c(10^par("usr")[3], 10^par("usr")[4])
+}else{
+grid.coord.y <- c(par("usr")[3], par("usr")[4])
+}
+if( ! is.null(bg.color)){
+rect(grid.coord.x[1], grid.coord.y[1], grid.coord.x[2], grid.coord.y[2], col = bg.color, border = NA)
+}
+if( ! is.null(grid.lwd)){
+grid(nx = NA, ny = NULL, col = grid.col, lty = 1, lwd = grid.lwd)
+}
+if(x.log.scale == TRUE){
+x.mid.left.fig.region <- 10^(par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1] / 2) # in x coordinates, to position axis labeling at the bottom of the graph (according to x scale)
+x.left.fig.region <- 10^(par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1]) # in x coordinates
+x.mid.right.fig.region <- 10^(par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2]) / 2) # in x coordinates, to position axis labeling at the top of the graph (according to x scale)
+x.right.fig.region <- 10^(par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2])) # in x coordinates
+x.left.plot.region <- 10^par("usr")[1] # in x coordinates, left of the plot region (according to x scale)
+x.right.plot.region <- 10^par("usr")[2] # in x coordinates, right of the plot region (according to x scale)
+x.mid.plot.region <- 10^((par("usr")[2] + par("usr")[1]) / 2) # in x coordinates, right of the plot region (according to x scale)
+}else{
+x.mid.left.fig.region <- (par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1] / 2) # in x coordinates, to position axis labeling at the bottom of the graph (according to x scale)
+x.left.fig.region <- (par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1]) # in x coordinates
+x.mid.right.fig.region <- (par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2]) / 2) # in x coordinates, to position axis labeling at the top of the graph (according to x scale)
+x.right.fig.region <- (par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2])) # in x coordinates
+x.left.plot.region <- par("usr")[1] # in x coordinates, left of the plot region (according to x scale)
+x.right.plot.region <- par("usr")[2] # in x coordinates, right of the plot region (according to x scale)
+x.mid.plot.region <- (par("usr")[2] + par("usr")[1]) / 2 # in x coordinates, right of the plot region (according to x scale)
+}
+if(y.log.scale == TRUE){
+y.mid.bottom.fig.region <- 10^(par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3] / 2) # in y coordinates, to position axis labeling at the bottom of the graph (according to y scale). Ex mid.bottom.space
+y.bottom.fig.region <- 10^(par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3]) # in y coordinates
+y.mid.top.fig.region <- 10^(par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4]) / 2) # in y coordinates, to position axis labeling at the top of the graph (according to y scale). Ex mid.top.space
+y.top.fig.region <- 10^(par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4])) # in y coordinates
+y.top.plot.region <- 10^par("usr")[4] # in y coordinates, top of the plot region (according to y scale)
+y.bottom.plot.region <- 10^par("usr")[3] # in y coordinates, bottom of the plot region (according to y scale)
+y.mid.plot.region <- (par("usr")[3] + par("usr")[4]) / 2 # in x coordinates, right of the plot region (according to x scale)
+}else{
+y.mid.bottom.fig.region <- (par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3] / 2) # in y coordinates, to position axis labeling at the bottom of the graph (according to y scale). Ex mid.bottom.space
+y.bottom.fig.region <- (par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3]) # in y coordinates
+y.mid.top.fig.region <- (par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4]) / 2) # in y coordinates, to position axis labeling at the top of the graph (according to y scale). Ex mid.top.space
+y.top.fig.region <- (par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4])) # in y coordinates
+y.top.plot.region <- par("usr")[4] # in y coordinates, top of the plot region (according to y scale)
+y.bottom.plot.region <- par("usr")[3] # in y coordinates, bottom of the plot region (according to y scale)
+y.mid.plot.region <- 10^((par("usr")[3] + par("usr")[4]) / 2) # in x coordinates, right of the plot region (according to x scale)
+}
+if(x.side == 1 | x.side == 3){
+par(xpd=FALSE, xaxt="s")
+if(is.null(x.categ) & x.log.scale == TRUE){
+if(any(par()$xaxp[1:2] == 0)){
+if(par()$xaxp[1] == 0){
+par(xaxp = c(10^-30, par()$xaxp[2:3])) # because log10(par()$xaxp[1] == 0) == -Inf
+}
+if(par()$xaxp[2] == 0){
+par(xaxp = c(par()$xaxp[1], 10^-30, par()$xaxp[3])) # because log10(par()$xaxp[2] == 0) == -Inf
+}
+}
+axis(side=x.side, at=c(10^par()$usr[1], 10^par()$usr[2]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
+mtext(side = x.side, text = x.lab, line = x.dist.legend / 0.2, las = 0, cex = x.label.magnific)
+par(tcl = -par()$mgp[2] * sec.tick.length) # length of the secondary ticks are reduced
+suppressWarnings(rug(10^outer(c((log10(par("xaxp")[1]) -1):log10(par("xaxp")[2])), log10(1:10), "+"), ticksize = NA, side = x.side)) # ticksize = NA to allow the use of par()$tcl value
+par(tcl = -par()$mgp[2] * tick.length) # back to main ticks
+axis(side = x.side, at = c(1e-15, 1e-14, 1e-13, 1e-12, 1e-11, 1e-10, 1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10), labels = expression(10^-15, 10^-14, 10^-13, 10^-12, 10^-11, 10^-10, 10^-9, 10^-8, 10^-7, 10^-6, 10^-5, 10^-4, 10^-3, 10^-2, 10^-1, 10^0, 10^1, 10^2, 10^3, 10^4, 10^5, 10^6, 10^7, 10^8, 10^9, 10^10), lwd = 0, lwd.ticks = 1, cex.axis = x.axis.magnific)
+x.text <- 10^par("usr")[2]
+}else if(is.null(x.categ) & x.log.scale == FALSE){
+axis(side=x.side, at=c(par()$usr[1], par()$usr[2]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
+axis(side=x.side, at=round(seq(par()$xaxp[1], par()$xaxp[2], length.out=par()$xaxp[3]+1), 2), cex.axis = x.axis.magnific)
+mtext(side = x.side, text = x.lab, line = x.dist.legend / 0.2, las = 0, cex = x.label.magnific)
+if(x.nb.inter.tick > 0){
+inter.tick.unit <- (par("xaxp")[2] - par("xaxp")[1]) / par("xaxp")[3]
+par(tcl = -par()$mgp[2] * sec.tick.length) # length of the ticks are reduced
+suppressWarnings(rug(seq(par("xaxp")[1] - 10 * inter.tick.unit, par("xaxp")[2] + 10 * inter.tick.unit, by = inter.tick.unit / (1 + x.nb.inter.tick)), ticksize = NA, x.side)) # ticksize = NA to allow the use of par()$tcl value
+par(tcl = -par()$mgp[2] * tick.length) # back to main ticks
+}
+x.text <- par("usr")[2]
+}else if(( ! is.null(x.categ)) & x.log.scale == FALSE){
+if(is.null(x.categ.pos)){
+x.categ.pos <- 1:length(x.categ)
+}else if(length(x.categ.pos) != length(x.categ)){
+stop("\n\nPROBLEM: x.categ.pos MUST BE THE SAME LENGTH AS x.categ\n\n")
+}
+par(xpd = TRUE)
+if(x.side == 1){
+segments(x0 = x.left.plot.region, x1 = x.right.plot.region, y0 = y.bottom.plot.region, y1 = y.bottom.plot.region) # draw the line of the axis
+text(x = x.categ.pos, y = y.mid.bottom.fig.region, labels = x.categ, srt = text.angle, cex = x.axis.magnific)
+}else if(x.side == 3){
+segments(x0 = x.left.plot.region, x1 = x.right.plot.region, y0 = y.top.plot.region, y1 = y.top.plot.region) # draw the line of the axis
+text(x = x.categ.pos, y = y.mid.top.fig.region, labels = x.categ, srt = text.angle, cex = x.axis.magnific)
+}else{
+stop("\n\nARGUMENT x.side CAN ONLY BE 1 OR 3\n\n")
+}
+par(xpd = FALSE)
+x.text <- par("usr")[2]
+}else{
+stop("\n\nPROBLEM WITH THE x.side (", x.side ,") OR x.log.scale (", x.log.scale,") ARGUMENTS\n\n")
+}
+}else{
+x.text <- par("usr")[2]
+}
+if(y.side == 2 | y.side == 4){
+par(xpd=FALSE, yaxt="s")
+if(is.null(y.categ) & y.log.scale == TRUE){
+if(any(par()$yaxp[1:2] == 0)){
+if(par()$yaxp[1] == 0){
+par(yaxp = c(10^-30, par()$yaxp[2:3])) # because log10(par()$yaxp[1] == 0) == -Inf
+}
+if(par()$yaxp[2] == 0){
+par(yaxp = c(par()$yaxp[1], 10^-30, par()$yaxp[3])) # because log10(par()$yaxp[2] == 0) == -Inf
+}
+}
+axis(side=y.side, at=c(10^par()$usr[3], 10^par()$usr[4]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
+par(tcl = -par()$mgp[2] * sec.tick.length) # length of the ticks are reduced
+suppressWarnings(rug(10^outer(c((log10(par("yaxp")[1])-1):log10(par("yaxp")[2])), log10(1:10), "+"), ticksize = NA, side = y.side)) # ticksize = NA to allow the use of par()$tcl value
+par(tcl = -par()$mgp[2] * tick.length) # back to main tick length
+axis(side = y.side, at = c(1e-15, 1e-14, 1e-13, 1e-12, 1e-11, 1e-10, 1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10), labels = expression(10^-15, 10^-14, 10^-13, 10^-12, 10^-11, 10^-10, 10^-9, 10^-8, 10^-7, 10^-6, 10^-5, 10^-4, 10^-3, 10^-2, 10^-1, 10^0, 10^1, 10^2, 10^3, 10^4, 10^5, 10^6, 10^7, 10^8, 10^9, 10^10), lwd = 0, lwd.ticks = 1, cex.axis = y.axis.magnific)
+y.text <- 10^(par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
+mtext(side = y.side, text = y.lab, line = y.dist.legend / 0.2, las = 0, cex = y.label.magnific)
+}else if(is.null(y.categ) & y.log.scale == FALSE){
+axis(side=y.side, at=c(par()$usr[3], par()$usr[4]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
+axis(side=y.side, at=round(seq(par()$yaxp[1], par()$yaxp[2], length.out=par()$yaxp[3]+1), 2), cex.axis = y.axis.magnific)
+mtext(side = y.side, text = y.lab, line = y.dist.legend / 0.2, las = 0, cex = y.label.magnific)
+if(y.nb.inter.tick > 0){
+inter.tick.unit <- (par("yaxp")[2] - par("yaxp")[1]) / par("yaxp")[3]
+par(tcl = -par()$mgp[2] * sec.tick.length) # length of the ticks are reduced
+suppressWarnings(rug(seq(par("yaxp")[1] - 10 * inter.tick.unit, par("yaxp")[2] + 10 * inter.tick.unit, by =  inter.tick.unit / (1 + y.nb.inter.tick)), ticksize = NA, side=y.side)) # ticksize = NA to allow the use of par()$tcl value
+par(tcl = -par()$mgp[2] * tick.length) # back to main tick length
+}
+y.text <- (par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
+}else if(( ! is.null(y.categ)) & y.log.scale == FALSE){
+if(is.null(y.categ.pos)){
+y.categ.pos <- 1:length(y.categ)
+}else if(length(y.categ.pos) != length(y.categ)){
+stop("\n\nPROBLEM: y.categ.pos MUST BE THE SAME LENGTH AS y.categ\n\n")
+}
+axis(side = y.side, at = y.categ.pos, labels = rep("", length(y.categ)), lwd=0, lwd.ticks=1) # draw the line of the axis
+par(xpd = TRUE)
+if(y.side == 2){
+text(x = x.mid.left.fig.region, y = y.categ.pos, labels = y.categ, srt = text.angle, cex = y.axis.magnific)
+}else if(y.side == 4){
+text(x = x.mid.right.fig.region, y = y.categ.pos, labels = y.categ, srt = text.angle, cex = y.axis.magnific)
+}else{
+stop("\n\nARGUMENT y.side CAN ONLY BE 2 OR 4\n\n")
+}
+par(xpd = FALSE)
+y.text <- (par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
+}else{
+stop("\n\nPROBLEM WITH THE y.side (", y.side ,") OR y.log.scale (", y.log.scale,") ARGUMENTS\n\n")
+}
+}else{
+y.text <- (par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
+}
+par(xpd=NA)
+text(x = x.mid.right.fig.region, y = y.text, corner.text, adj=c(1, 1.1), cex = magnific.corner.text) # text at the topright corner. Replace x.right.fig.region by x.text if text at the right edge of the plot region
+if(just.label.add == TRUE & x.side == 0 & x.lab != ""){
+text(x = x.mid.plot.region, y = y.mid.bottom.fig.region, x.lab, adj=c(0.5, 0.5), cex = x.label.magnific) # x label
+}
+if(just.label.add == TRUE & y.side == 0 & y.lab != ""){
+text(x = y.mid.plot.region, y = x.mid.left.fig.region, y.lab, adj=c(0.5, 0.5), cex = y.label.magnific) # x label
+}
+par(xpd=FALSE)
+if(par.reset == TRUE){
+tempo.par <- fun_open_window(pdf.disp = FALSE, return.output = TRUE)
+invisible(dev.off()) # close the new window
+if( ! is.null(custom.par)){
+if( ! names(custom.par) %in% names(tempo.par$ini.par)){
+tempo.cat <- paste0("\n\n================\n\nERROR: custom.par ARGUMENT SHOULD HAVE THE NAMES OF THE COMPARTMENT LIST COMING FROM THE par() LIST\n\n================\n\n")
+stop(tempo.cat)
+}
+par(custom.par)
+text <- c(text, "\nGRAPH PARAMETERS SET TO VALUES DEFINED BY custom.par ARGUMENT\n")
+}else{
+par(tempo.par$ini.par)
+text <- c(text, "\nGRAPH PARAMETERS RESET TO par() DEFAULT VALUES\n")
+}
+}
+output <- list(x.mid.left.fig.region = x.mid.left.fig.region, x.left.fig.region = x.left.fig.region, x.mid.right.fig.region = x.mid.right.fig.region, x.right.fig.region = x.right.fig.region, x.left.plot.region = x.left.plot.region, x.right.plot.region = x.right.plot.region, x.mid.plot.region = x.mid.plot.region, y.mid.bottom.fig.region = y.mid.bottom.fig.region, y.bottom.fig.region = y.bottom.fig.region, y.mid.top.fig.region = y.mid.top.fig.region, y.top.fig.region = y.top.fig.region, y.top.plot.region = y.top.plot.region, y.bottom.plot.region = y.bottom.plot.region, y.mid.plot.region = y.mid.plot.region, text = text)
+return(output)
+}
+
+
+######## fun_close_specif_window() #### Closing specific graphic windows
+
+
+# Check OK: clear to go Apollo
+fun_close_specif_window <- function(kind = "pdf", return.text = FALSE){
+# AIM:
+# close only specific graphic windows (devices)
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS:
+# kind: vector, among c("windows", "quartz", "x11", "X11", "pdf", "bmp", "png", "tiff"), indicating the kind of graphic windows (devices) to close. BEWARE: either "windows", "quartz", "x11" or "X11" means that all the X11 GUI graphics devices will be closed, whatever the OS used
+# return.text: print text regarding the kind parameter and the devices that were finally closed?
+# RETURN
+# text regarding the kind parameter and the devices that were finally closed
+# EXAMPLES
+# windows() ; windows() ; pdf() ; dev.list() ; fun_close_specif_window(kind = c("pdf", "x11"), return.text = TRUE) ; dev.list()
+# DEBUGGING
+# kind = c("windows", "pdf") ; return.text = FALSE # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = kind, options = c("windows", "quartz", "x11", "X11", "pdf", "bmp", "png", "tiff")) ; eval(ee)
+tempo <- fun_param_check(data = return.text, class = "logical", length = 1) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# end argument checking
+text <- paste0("THE REQUIRED KIND OF GRAPHIC DEVICES TO CLOSE ARE ", paste(kind, collapse = " "))
+if(Sys.info()["sysname"] == "Windows"){ # Note that .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
+if(any(kind %in% c("windows", "quartz", "x11", "X11"))){
+tempo <- kind %in% c("windows", "quartz", "x11", "X11")
+kind[tempo] <- "windows" #  # term are replaced by what is displayed when using a <- dev.list() ; names(a)
+}
+}else if(Sys.info()["sysname"] == "Linux"){
+if(any(kind %in% c("windows", "quartz", "x11", "X11"))){
+tempo.device <- suppressWarnings(try(X11(), silent = TRUE))[] # open a X11 window to try to recover the X11 system used
+if( ! is.null(tempo.device)){
+text <- paste0(text, "\nCANNOT CLOSE GUI GRAPHIC DEVICES AS REQUIRED BECAUSE THIS LINUX SYSTEM DOES NOT HAVE IT")
+}else{
+tempo <- kind %in% c("windows", "quartz", "x11", "X11")
+kind[tempo] <- names(dev.list()[length(dev.list())]) #  # term are replaced by what is displayed when using a <- dev.list() ; names(a)
+invisible(dev.off()) # close the X11 opened by tempo
+}
+}
+}else{ # for macOS
+if(any(kind %in% c("windows", "quartz", "x11", "X11"))){
+tempo <- kind %in% c("windows", "quartz", "x11", "X11")
+kind[tempo] <- "quartz" # term are replaced by what is displayed when using a <- dev.list() ; names(a)
+}
+}
+kind <- unique(kind)
+if(length(dev.list()) != 0){
+for(i in length(names(dev.list())):1){
+if(names(dev.list())[i] %in% kind){
+text <- paste0(text, "\n", names(dev.list())[i], " DEVICE NUMBER ", dev.list()[i], " HAS BEEN CLOSED")
+invisible(dev.off(dev.list()[i]))
+}
+}
+}
+if(return.text == TRUE){
+return(text)
+}
+}
+
+
+################ Exporting results (text & tables)
+
+
+######## fun_export_data() #### Print string or data object into output file
+
+
+# Check OK: clear to go Apollo
+fun_export_data <- function(data, output ="results.txt", path = "C:/Users/Gael/Desktop", no.overwrite = TRUE, rownames.kept = FALSE, vector.cat = FALSE, sep = 2){
+# AIM:
+# print a character string or a data object into an output file
+# REQUIRED FUNCTIONS
+# fun_param_check()
+# ARGUMENTS
+# data: object to print in the output file
+# output: name of the output file
+# path: location of the output file
+# no.overwrite: (logical) if output file already exists, defines if the printing is appended (default TRUE) or if the output file content is erased before printing (FALSE)
+# rownames.kept: (logical) defines whether row names have to be removed or not in small tables (less than length.rows rows)
+# vector.cat (logical). If TRUE print a vector of length > 1 using cat() instead of capture.output(). Otherwise (default FALSE) the opposite
+# sep: number of separating lines after printed data (must be integer)
+# RETURN
+# nothing
+# EXAMPLES
+# fun_export_data(data = 1:3, output = "results.txt", path = "C:/Users/Gael/Desktop", no.overwrite = TRUE, rownames.kept = FALSE, vector.cat = FALSE, sep = 2)
+# DEBUGGING
+# data = 1:3 ; output = "results.txt" ; path = "C:/Users/Gael/Desktop" ; no.overwrite = TRUE ; rownames.kept = FALSE ; vector.cat = FALSE ; sep = 2 # for function debugging
+# required function checking
+if(length(find("fun_param_check", mode = "function")) == 0){
+tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
+stop(tempo.cat)
+}
+# end required function checking
+# argument checking
+arg.check <- NULL # for function debbuging
+checked.arg.names <- NULL # for function debbuging
+ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
+tempo <- fun_param_check(data = output, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = path, class = "character", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = no.overwrite, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = rownames.kept, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = vector.cat, class = "logical", length = 1) ; eval(ee)
+tempo <- fun_param_check(data = sep, typeof = "integer", length = 1, double.as.integer.allowed = TRUE) ; eval(ee)
+if(any(arg.check) == TRUE){
+stop()
+}
+# source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
+# the 4 next lines are just to know how to detect a missing argument. Important here because if data is not provided, print the code of the data function
+arg.user.list <- as.list(match.call(expand.dots=FALSE))[-1] # recover all the arguments provided by the function user (excluding the argument with defaults values not provided by the user. Thus, it is really the list indicated by the user)
+default.arg.list <- formals(fun = sys.function(sys.parent())) # list of all the arguments of the function with their default values (not the values of the user !). It seems that ls() as first line of the function provide the names of the arguments (empty, called, etc., or not)
+arg.without.default.value <- sapply(default.arg.list, is.symbol) & sapply(sapply(default.arg.list, as.character), identical, "") # logical to detect argument without default values (these are typeof "symbol" and class "name" and empty character
+if( ! all(names(default.arg.list)[arg.without.default.value] %in% names(arg.user.list))){ # test that the arguments with no null values are provided by the user
+tempo.cat <- paste0("\n\n================\n\nERROR: VALUE REQUIRED FOR THESE ARGUMENTS WITH NO DEFAULTS VALUES: ", paste(names(default.arg.list)[arg.without.default.value][ ! names(default.arg.list)[arg.without.default.value] %in% names(arg.user.list)], collapse = " "), "\n\n================\n\n")
+stop(tempo.cat)
+}
+if(output == ""){
+tempo.cat <- paste0("\n\n================\n\nERROR: output ARGUMENT DOES NOT CORRESPOND TO A VALID CHARACTER STRING\n\n================\n\n")
+stop(tempo.cat)
+}
+if(dir.exists(path) == FALSE){
+tempo.cat <- paste0("\n\n================\n\nERROR: path ARGUMENT DOES NOT CORRESPOND TO EXISTING DIRECTORY\n\n================\n\n")
+stop(tempo.cat)
+}
+# end argument checking
+if(all(class(data) %in% c("matrix", "data.frame", "table"))){
+if(rownames.kept == FALSE & all(class(data) == "data.frame") & nrow(data) != 0 & nrow(data) <= 4){ # for data frames with nrows <= 4
+rownames.output.tables <- ""
+length.rows <- nrow(data)
+for(i in 1:length.rows){ # replace the rownames of the first 4 rows by increasing number of spaces (beacause identical row names not allowed in data frames). This method cannot be extended to more rows as the printed data frame is shifted on the right because of "big empty rownames"
+rownames.output.tables <- c(rownames.output.tables, paste0(rownames.output.tables[i]," ", collapse=""))
+}
+row.names(data) <- rownames.output.tables[1:length.rows]
+}else if(rownames.kept == FALSE & all(class(data) %in% c("matrix", "table"))){
+rownames(data) <- rep("", nrow(data))  # identical row names allowed in matrices and tables
+}
+capture.output(data, file=paste0(path, "/", output), append = no.overwrite)
+}else if(is.vector(data) & all(class(data) != "list") & (length(data) == 1 | vector.cat == TRUE)){
+cat(data, file= paste0(path, "/", output), append = no.overwrite)
+}else{ # other (array, list, factor or vector with vector.cat = FALSE)
+capture.output(data, file=paste0(path, "/", output), append = no.overwrite)
+}
+sep.final <- paste0(rep("\n", sep), collapse = "")
+write(sep.final, file= paste0(path, "/", output), append = TRUE) # add a sep
+}
+
+
diff --git a/cute_little_R_functions.docx b/cute_little_R_functions.docx
new file mode 100644
index 0000000000000000000000000000000000000000..e7d8ec3554141ca2d44dc77bb327a0c937853d29
GIT binary patch
literal 168299
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
YQ3e9&#=mG51z-#g09?fYdj`P&0UI#vTL1t6

literal 0
HcmV?d00001

diff --git a/cute_little_functions.R b/cute_little_functions.R
deleted file mode 100644
index f73e439..0000000
--- a/cute_little_functions.R
+++ /dev/null
@@ -1,2152 +0,0 @@
-################################################################
-##                                                            ##
-##     CUTE LITTLE FUNCTIONS v3.0.0                           ##
-##                                                            ##
-##     Gael A. Millot                                         ##
-##                                                            ##
-##     Compatible with R v3.5.1                               ##
-##                                                            ##
-################################################################
-
-
-
-
-
-################################ OUTLINE ################################
-
-
-################ Object analysis    1
-######## fun_param_check() #### Checking class, type, length, etc. of objects   1
-######## fun_object_info() #### Recovering object information   7
-######## fun_1D_comp() #### comparison of two 1D datasets (vectors, factors, 1D tables) 7
-######## fun_2D_comp() #### comparison of two 2D datasets (row & col names, dimensions, etc.)   11
-######## fun_list_comp() #### comparison of two lists   16
-
-################ Object modification    18
-######## fun_dataframe_remodeling() #### remodeling a data frame to have column name as a qualitative column and vice-versa 18
-######## fun_refactorization() #### remove classes that are not anymore present in factors or factor columns in data frames 20
-######## fun_rounding() #### Rounding number if decimal present 22
-######## fun_90clock_matrix_rot() #### 90° clockwise matrix rotation    23
-######## fun_hexa_hsv_color_matrix() #### Conversion of a numeric matrix into hexadecimal color matrix  23
-
-################ Graphics   26
-######## fun_window_width_resizing() #### window width depending on classes to plot 26
-######## fun_open_window() #### Open a GUI or pdf graphic window    27
-######## fun_graph_param_prior_plot() #### Graph param before plotting  30
-######## fun_feature_post_plot() #### Graph param after plotting    33
-######## fun_close_specif_window() #### Closing specific graphic windows    41
-
-################ Exporting results (text & tables)  42
-######## fun_export_data() #### Print string or data object into output file    42
-
-
-################################ FUNCTIONS ################################
-
-
-################ Object analysis
-
-
-######## fun_param_check() #### Checking class, type, length, etc. of objects
-
-
-# Check OK: clear to go Apollo
-fun_param_check <- function(data, data.name = NULL, class = NULL, typeof = NULL, mode = NULL, length = NULL, prop = NULL, double.as.integer.allowed = FALSE, options = NULL, all.options.in.data = FALSE, na.contain = FALSE, neg.values = TRUE, print = TRUE){
-    # AIM:
-    # Check the class, type, mode and length of the data argument
-    # Mainly used to check the arguments of other functions
-    # Check also other kind of data parameters, is it a proportion? Is it type double even if it is an integer?
-    # If options = NULL, then at least class, type, mode or length must be non null
-    # If options is non null, then class, type and mode must be NULL, and length can be NULL or specified
-    # REQUIRED FUNCTIONS
-    # none
-    # ARGUMENTS
-    # data: object to test
-    # data.name: name of the object to test. If NULL, use the name of the object assigned to the data argument
-    # class: one of the class() result
-    # typeof: one of the typeof() result
-    # mode: one of the mode() result (for non vector object)
-    # length: length of the object
-    # prop: logical, are the numeric values between 0 and 1 (proportion)?
-    # double.as.integer.allowed: logical. If TRUE, no error is reported if argument is set to typeof = "integer" or class = "integer", while the reality is typeof = "double" or class = "numeric" but the numbers have a zero as modulo (remainder of a division). This means that i<-1 , which is typeof(i) -> "double" is considered as integer with double.as.integer.allowed = TRUE
-    # options: a vector of possible values for data
-    # all.options.in.data: If TRUE, all of the options must be present at least once in data, and nothing else. If FALSE, some of the options must be present in data, and nothing else
-    # na.contain: can data contains NA?
-    # neg.values: are negative numeric values authorized? BEWARE: only considered if set to FALSE, to check for non negative values when class is set to "numeric", "matrix", "array", "data.frame", "table", or typeof is set to "double", "integer", or mode is set to "numeric"
-    # print: print the error message if $problem is TRUE?
-    # RETURN
-    # a list containing:
-    # $problem: logical. Is there any problem detected ?
-    # $text: the problem detected
-    # $param.name: name of the checked parameter
-    # EXAMPLES
-    # test <- 1:3 ; fun_param_check(data = test, data.name = NULL, print = TRUE, options = NULL, all.options.in.data = FALSE, class = NULL, typeof = NULL, mode = NULL, prop = TRUE, double.as.integer.allowed = FALSE, length = NULL)
-    # test <- 1:3 ; fun_param_check(data = test, print = TRUE, class = "numeric", typeof = NULL, double.as.integer.allowed = FALSE)
-    # DEBUGGING
-    # data = 1:3 ; data.name = NULL ; print = TRUE; options = NULL ; all.options.in.data = FALSE ; class = "numeric" ; typeof = NULL ; mode = NULL ; prop = NULL ; double.as.integer.allowed = TRUE ; length = NULL # for function debugging
-    # argument checking
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev))
-    if( ! is.null(data.name)){
-        if( ! (length(data.name) == 1 & class(data.name) == "character")){
-            tempo.cat <- paste0("\n\n================\n\nERROR: data.name ARGUMENT MUST BE A SINGLE CHARACTER ELEMENT AND NOT ", paste(data.name, collapse = " "), "\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if(is.null(options) & is.null(class) & is.null(typeof) & is.null(mode) & is.null(prop) & is.null(length)){
-        tempo.cat <- paste0("\n\n================\n\nERROR: AT LEAST ONE OF THE options, class, typeof, mode, prop, OR length ARGUMENT MUST BE SPECIFIED\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! is.null(options) & ( ! is.null(class) | ! is.null(typeof) | ! is.null(mode) | ! is.null(prop))){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE class, typeof, mode AND prop ARGUMENTS MUST BE NULL IF THE option ARGUMENT IS SPECIFIED\nTHE option ARGUMENT MUST BE NULL IF THE class AND/OR typeof AND/OR mode  AND/OR prop ARGUMENT IS SPECIFIED\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! (all(class(neg.values) == "logical") & length(neg.values) == 1 & any(is.na(neg.values)) != TRUE)){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE neg.values ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if(neg.values == FALSE & is.null(class) & is.null(typeof) & is.null(mode)){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE neg.values ARGUMENT CANNOT BE SWITCHED TO FALSE IF class, typeof AND mode ARGUMENTS ARE NULL\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! is.null(class)){
-        if( ! all(class %in% c("logical", "integer", "numeric", "complex", "character", "matrix", "array", "data.frame", "list", "factor", "table", "expression", "name", "symbol", "function") & any(is.na(class)) != TRUE)){ # not length == 1 here because ordered factors are class "factor" "ordered" (length == 2)
-            tempo.cat <- paste0("\n\n================\n\nERROR: class ARGUMENT MUST BE ONE OF THESE VALUE:\n\"logical\", \"integer\", \"numeric\", \"complex\", \"character\", \"matrix\", \"array\", \"data.frame\", \"list\", \"factor\", \"table\", \"expression\", \"name\", \"symbol\", \"function\" \n\n================\n\n")
-            stop(tempo.cat)
-        }
-        if(neg.values == FALSE & ! any(class %in% c("numeric", "matrix", "array", "data.frame", "table"))){
-            tempo.cat <- paste0("\n\n================\n\nERROR: class ARGUMENT CANNOT BE OTHER THAN \"numeric\", \"matrix\", \"array\", \"data.frame\", \"table\" IF neg.values ARGUMENT IS SWITCHED TO FALSE\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if( ! is.null(typeof)){
-        if( ! (all(typeof %in% c("logical", "integer", "double", "complex", "character", "list", "expression", "name", "symbol", "closure", "special", "builtin")) & length(typeof) == 1 & any(is.na(typeof)) != TRUE)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: typeof ARGUMENT MUST BE ONE OF THESE VALUE:\n\"logical\", \"integer\", \"double\", \"complex\", \"character\", \"list\", \"expression\", \"name\", \"symbol\", \"closure\", \"special\", \"builtin\" \n\n================\n\n")
-            stop(tempo.cat)
-        }
-        if(neg.values == FALSE & ! typeof %in% c("double", "integer")){
-            tempo.cat <- paste0("\n\n================\n\nERROR: typeof ARGUMENT CANNOT BE OTHER THAN \"double\" OR \"integer\" IF neg.values ARGUMENT IS SWITCHED TO FALSE\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if( ! is.null(mode)){
-        if( ! (all(mode %in% c("logical", "numeric", "complex", "character", "list", "expression", "name", "symbol", "function")) & length(mode) == 1 & any(is.na(mode)) != TRUE)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: mode ARGUMENT MUST BE ONE OF THESE VALUE:\n\"logical\", \"numeric\", \"complex\", \"character\", \"list\", \"expression\", \"name\", \"symbol\", \"function\"\n\n================\n\n")
-            stop(tempo.cat)
-        }
-        if(neg.values == FALSE & mode != "numeric"){
-            tempo.cat <- paste0("\n\n================\n\nERROR: mode ARGUMENT CANNOT BE OTHER THAN \"numeric\" IF neg.values ARGUMENT IS SWITCHED TO FALSE\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if( ! is.null(length)){
-        if( ! (is.numeric(length) & length(length) == 1 & ! grepl(length, pattern = "\\.") & any(is.na(length)) != TRUE)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: length ARGUMENT MUST BE A SINGLE INTEGER VALUE\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if( ! is.null(prop)){
-        if( ! (is.logical(prop) | length(prop) == 1 & any(is.na(prop)) != TRUE)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: prop ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
-            stop(tempo.cat)
-        }else if(prop == TRUE){
-            if( ! is.null(class)){
-                if( ! any(class %in% c("numeric", "matrix", "array", "data.frame", "table"))){
-                    tempo.cat <- paste0("\n\n================\n\nERROR: class ARGUMENT CANNOT BE OTHER THAN \"numeric\", \"matrix\", \"array\", \"data.frame\", \"table\" IF prop ARGUMENT IS TRUE\n\n================\n\n")
-                    stop(tempo.cat)
-                }
-            }
-            if( ! is.null(mode)){
-                if(mode != "numeric"){
-                    tempo.cat <- paste0("\n\n================\n\nERROR: mode ARGUMENT CANNOT BE OTHER THAN \"numeric\" IF prop ARGUMENT IS TRUE\n\n================\n\n")
-                    stop(tempo.cat)
-                }
-            }
-            if( ! is.null(typeof)){
-                if(typeof != "double"){
-                    tempo.cat <- paste0("\n\n================\n\nERROR: typeof ARGUMENT CANNOT BE OTHER THAN \"double\" IF prop ARGUMENT IS TRUE\n\n================\n\n")
-                    stop(tempo.cat)
-                }
-            }
-        }
-    }
-    if( ! (all(class(double.as.integer.allowed) == "logical") & length(double.as.integer.allowed) == 1 & any(is.na(double.as.integer.allowed)) != TRUE)){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE double.as.integer.allowed ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! (is.logical(all.options.in.data) & length(all.options.in.data) == 1 & any(is.na(all.options.in.data)) != TRUE)){
-        tempo.cat <- paste0("\n\n================\n\nERROR: all.options.in.data ARGUMENT MUST BE A SINGLE LOGICAL VALUE (TRUE OR FALSE ONLY)\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! (all(class(na.contain) == "logical") & length(na.contain) == 1 & any(is.na(na.contain)) != TRUE)){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE na.contain ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! (all(class(print) == "logical") & length(print) == 1 & any(is.na(print)) != TRUE)){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE print ARGUMENT MUST BE TRUE OR FALSE ONLY\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end argument checking
-    if(is.null(data.name)){
-        data.name <- deparse(substitute(data))
-    }
-    problem <- FALSE
-    text <- paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER")
-    if( ! is.null(options)){
-        text <- ""
-        if( ! all(data %in% options)){
-            problem <- TRUE
-            text <- paste0("PROBLEM: THE ", data.name, " PARAMETER MUST BE SOME OF THESE OPTIONS: ", paste(options, collapse = " "), "\nTHE PROBLEMATIC ELEMENTS OF ", data.name, " ARE: ", paste(unique(data[ ! (data %in% options)]), collapse = " "))
-        }
-        if(all.options.in.data == TRUE){
-            if( ! all(options %in% data)){
-                problem <- TRUE
-                if(text == ""){
-                    text <- paste0("PROBLEM: THE ", data.name, " PARAMETER MUST BE SOME OF THESE OPTIONS: ", paste(options, collapse = " "), "\nTHE PROBLEMATIC ELEMENTS OF ", data.name, " ARE: ", unique(data[ ! (data %in% options)]))
-                }else{
-                    text <- paste0(text, "\nPROBLEM: THE ", data.name, " PARAMETER MUST BE SOME OF THESE OPTIONS: ", paste(options, collapse = " "), "\nTHE PROBLEMATIC ELEMENTS OF ", data.name, " ARE: ", unique(data[ ! (data %in% options)]))
-                }
-            }
-        }
-        if( ! is.null(length)){
-            if(length(data) != length){
-                problem <- TRUE
-                if(text == ""){
-                    text <- paste0("PROBLEM: THE LENGTH OF ", data.name, " MUST BE ", length, " AND NOT ", length(data))
-                }else{
-                    text <- paste0(text, "\nPROBLEM: THE LENGTH OF ", data.name, " MUST BE ", length, " AND NOT ", length(data))
-                }
-            }
-        }
-        if(text == ""){
-            text <- paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER")
-        }
-    }
-    arg.names <- c("class", "typeof", "mode", "length")
-    if(is.null(options)){
-        for(i2 in 1:length(arg.names)){
-            if( ! is.null(get(arg.names[i2]))){
-                # script to execute
-                tempo.script <- '
-                problem <- TRUE ;
-                if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
-                text <- paste0("PROBLEM: THE ", data.name, " PARAMETER MUST BE ") ;
-                }else{
-                text <- paste0(text, " AND "); 
-                }
-                text <- paste0(text, toupper(arg.names[i2]), " ", get(arg.names[i2]))
-                '
-                if(typeof(data) == "double" & double.as.integer.allowed == TRUE & ((arg.names[i2] == "class" & get(arg.names[i2]) == "integer") | (arg.names[i2] == "typeof" & get(arg.names[i2]) == "integer"))){
-                    if(! all(data%%1 == 0)){ # to check integers (use %%, meaning the remaining of a division): see the precedent line
-                        eval(parse(text = tempo.script)) # execute tempo.script
-                    }
-                }else if(eval(parse(text = paste0(arg.names[i2], "(data)"))) != get(arg.names[i2])){
-                    eval(parse(text = tempo.script)) # execute tempo.script
-                }
-            }
-    }
-        }
-    if( ! is.null(prop)){
-        if(prop == TRUE){
-            if(any(data < 0 | data > 1, na.rm = TRUE)){
-                problem <- TRUE
-                if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
-                    text <- paste0("PROBLEM: ")
-                }else{
-                    text <- paste0(text, " AND ")
-                }
-                text <- paste0(text, "THE ", data.name, " PARAMETER MUST BE DECIMAL VALUES BETWEEN 0 AND 1")
-            }
-        }
-    }
-    if(na.contain == FALSE & any(is.na(data)) == TRUE){
-        problem <- TRUE
-        if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
-            text <- paste0("PROBLEM: ")
-        }else{
-            text <- paste0(text, " AND ")
-        }
-        text <- paste0(text, "THE ", data.name, " PARAMETER CONTAINS NA WHILE NOT AUTHORIZED (na.contain ARGUMENT SET TO FALSE)")
-    }
-    if(neg.values == FALSE){
-        if(any(data < 0, na.rm = TRUE)){
-            problem <- TRUE
-            if(identical(text, paste0("NO PROBLEM DETECTED FOR THE ", data.name, " PARAMETER"))){
-                text <- paste0("PROBLEM: ")
-            }else{
-                text <- paste0(text, " AND ")
-            }
-            text <- paste0(text, "THE ", data.name, " PARAMETER MUST NON NEGATIVE NUMERIC VALUES")
-        }
-    }
-    if(print == TRUE & problem == TRUE){
-        cat(paste0("\n\n================\n\n", text, "\n\n================\n\n"))
-    }
-    output <- list(problem = problem, text = text, param.name = data.name)
-    return(output)
-    }
-
-
-######## fun_object_info() #### Recovering object information
-
-
-# Check OK: clear to go Apollo
-fun_object_info <- function(data){
-    # AIM:
-    # provide a full description of the object
-    # REQUIRED FUNCTIONS
-    # none
-    # ARGUMENTS
-    # data: object to test
-    # RETURN
-    # a list containing the info
-    # EXAMPLES
-    # fun_object_info(data = 1:3)
-    # DEBUGGING
-    # data = NULL # for function debugging
-    # data = 1:3 # for function debugging
-    # data = matrix(1:3) # for function debugging
-    # data = data.frame(a = 1:3) # for function debugging
-    # data = factor(1:3) # for function debugging
-    # data = list(1:3) # for function debugging
-    # argument checking
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # end argument checking
-    data.name <- deparse(substitute(data))
-    output <- list("FILE_NAME" = data.name)
-    tempo <- list("FILE_HEAD" = head(data))
-    output <- c(output, tempo)
-    if( ! is.null(data)){
-        tempo <- list("FILE_TAIL" = tail(data))
-        output <- c(output, tempo)
-        if( ! is.null(dim(data))){
-            tempo <- list("FILE_DIMENSION" = dim(data))
-            names(tempo[[1]]) <- c("NROW", "NCOL")
-            output <- c(output, tempo)
-        }
-        tempo <- list("SUMMARY" = summary(data))
-        output <- c(output, tempo)
-    }
-    if(class(data) == "data.frame" | class(data) == "matrix"){
-        tempo <- list("COLUM_NAMES" = names(data))
-        output <- c(output, tempo)
-    }
-    if(class(data) == "data.frame"){
-        tempo <- list("STRUCTURE" = ls.str(data))
-        output <- c(output, tempo)
-        tempo <- list("COLUMN_TYPE" = sapply(data, FUN = "typeof"))
-        output <- c(output, tempo)
-    }
-    if(class(data) == "list"){
-        tempo <- list("COMPARTMENT_NAMES" = names(data))
-        output <- c(output, tempo)
-    }
-    return(output)
-}
-
-
-######## fun_1D_comp() #### comparison of two 1D datasets (vectors, factors, 1D tables)
-
-
-# Check OK: clear to go Apollo
-fun_1D_comp <- function(data1, data2){
-    # AIM:
-    # compare two 1D datasets (vector of factor or 1D table) of the same class or not. Check and report in a list if the 2 datasets have:
-    # same class
-    # common elements
-    # common element names (except factors)
-    # common levels (factors only)
-    # REQUIRED FUNCTIONS
-    # none
-    # ARGUMENTS
-    # data1: vector or factor or 1D table
-    # data2: vector or factor or 1D table
-    # RETURN
-    # a list containing:
-    # $same.class: logical. Are class identical?
-    # $class: class of the 2 datasets (NULL otherwise)
-    # $same.length: logical. Are number of elements identical?
-    # $length: number of elements in the 2 datasets (NULL otherwise)
-    # $same.levels: logical. Are levels identical? (NULL if data1 and data2 are not factors)
-    # $levels: levels of the 2 datasets if identical (NULL otherwise or NULL if data1 and data2 are not factors)
-    # $any.id.levels: logical. Is there any identical levels? (NULL if data1 and data2 are not factors)
-    # $same.levels.pos1: position, in data1, of the levels identical in data2 (NULL if data1 and data2 are not factors)
-    # $same.levels.pos2: position, in data2, of the levels identical in data1 (NULL if data1 and data2 are not factors)
-    # $common.levels: common levels between data1 and data2 (can be a subset of $levels or not). NULL if no common levels or if data1 and data2 are not factors
-    # $same.name: logical. Are element names identical ?
-    # $name: name of elements of the 2 datasets if identical (NULL otherwise)
-    # $any.id.name: logical. Is there any element names identical ?
-    # $same.name.pos1: position, in data1, of the element names identical in data2
-    # $same.name.pos2: position, in data2, of the elements names identical in data1
-    # $common.names: common element names between data1 and data2 (can be a subset of $name or not). NULL if no common element names
-    # $any.id.element: logical. is there any identical elements ?
-    # $same.element.pos1: position, in data1, of the elements identical in data2
-    # $same.element.pos2: position, in data2, of the elements identical in data1
-    # $common.elements: common elements between data1 and data2. NULL if no common elements
-    # $identical.object: logical. Are objects identical (kind of object, element names and content)?
-    # $identical.content: logical. Are content objects identical (identical elements excluding kind of object and element names)?
-    # EXAMPLES
-    # obs1 = 1:5 ; obs2 = 1:5 ; names(obs1) <- LETTERS[1:5] ; names(obs2) <- LETTERS[1:5] ; fun_1D_comp(obs1, obs2)
-    # obs1 = 1:5 ; obs2 = 1:5 ; names(obs1) <- LETTERS[1:5] ; fun_1D_comp(obs1, obs2)
-    # obs1 = 1:5 ; obs2 = 3:6 ; names(obs1) <- LETTERS[1:5] ; names(obs2) <- LETTERS[1:4] ; fun_1D_comp(obs1, obs2)
-    # obs1 = factor(LETTERS[1:5]) ; obs2 = factor(LETTERS[1:5]) ; fun_1D_comp(obs1, obs2)
-    # obs1 = factor(LETTERS[1:5]) ; obs2 = factor(LETTERS[10:11]) ; fun_1D_comp(obs1, obs2)
-    # obs1 = factor(LETTERS[1:5]) ; obs2 = factor(LETTERS[4:7]) ; fun_1D_comp(obs1, obs2)
-    # obs1 = 1:5 ; obs2 = factor(LETTERS[1:5]) ; fun_1D_comp(obs1, obs2)
-    # obs1 = 1:5 ; obs2 = 1.1:6.1 ; fun_1D_comp(obs1, obs2)
-    # obs1 = as.table(1:5); obs2 = as.table(1:5) ; fun_1D_comp(obs1, obs2)
-    # obs1 = as.table(1:5); obs2 = 1:5 ; fun_1D_comp(obs1, obs2)
-    # DEBUGGING
-    # data1 = 1:5 ; data2 = 1:5 ; names(data1) <- LETTERS[1:5] ; names(data2) <- LETTERS[1:5] # for function debugging
-    # argument checking
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    if( ! any(class(data1) %in% c("logical", "integer", "numeric", "character", "factor", "table"))){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A NON NULL VECTOR, FACTOR OR 1D TABLE\n\n================\n\n")
-        stop(tempo.cat)
-    }else if(all(class(data1) %in% "table")){
-        if(length(dim(data1)) > 1){
-            tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A 1D TABLE\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if( ! any(class(data2) %in% c("logical", "integer", "numeric", "character", "factor", "table"))){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A NON NULL VECTOR, FACTOR OR 1D TABLE\n\n================\n\n")
-        stop(tempo.cat)
-    }else if(all(class(data2) %in% "table")){
-        if(length(dim(data2)) > 1){
-            tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A 1D TABLE\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    # end argument checking
-    same.class <- NULL
-    class <- NULL
-    same.length <- NULL
-    length <- NULL
-    same.levels <- NULL
-    levels <- NULL
-    any.id.levels <- NULL
-    same.levels.pos1 <- NULL
-    same.levels.pos2 <- NULL
-    common.levels <- NULL
-    same.name <- NULL
-    name <- NULL
-    any.id.name <- NULL
-    same.name.pos1 <- NULL
-    same.name.pos2 <- NULL
-    common.names <- NULL
-    any.id.element <- NULL
-    same.element.pos1 <- NULL
-    same.element.pos2 <- NULL
-    common.elements <- NULL
-    identical.object <- NULL
-    identical.content <- NULL
-    if(identical(data1, data2)){
-        same.class <- TRUE
-        class <- class(data1)
-        same.length <- TRUE
-        length <- length(data1)
-        if(any(class(data1) %in% "factor")){
-            same.levels <- TRUE
-            levels <- levels(data1)
-            any.id.levels <- TRUE
-            same.levels.pos1 <- 1:length(levels(data1))
-            same.levels.pos2 <- 1:length(levels(data2))
-            common.levels <- levels(data1)
-        }
-        if( ! is.null(names(data1))){
-            same.name <- TRUE
-            name <- names(data1)
-            any.id.name <- TRUE
-            same.name.pos1 <- 1:length(data1)
-            same.name.pos2 <- 1:length(data2)
-            common.names <- names(data1)
-        }
-        any.id.element <- TRUE
-        same.element.pos1 <- 1:length(data1)
-        same.element.pos2 <- 1:length(data2)
-        common.elements <- data1
-        identical.object <- TRUE
-        identical.content <- TRUE
-    }else{
-        identical.object <- FALSE
-        if( ! identical(class(data1), class(data2))){
-            same.class <- FALSE
-        }else{
-            same.class <- TRUE
-            class <- class(data1)
-        }
-        if( ! identical(length(data1), length(data2))){
-            same.length<- FALSE
-        }else{
-            same.length<- TRUE
-            length <- length(data1)
-        }
-        if(any(class(data1) %in% "factor") & any(class(data2) %in% "factor")){
-            if( ! identical(levels(data1), levels(data2))){
-                same.levels <- FALSE
-            }else{
-                same.levels <- TRUE
-                levels <- levels(data1)
-            }
-            any.id.levels <- FALSE
-            if(any(levels(data1) %in% levels(data2))){
-                any.id.levels <- TRUE
-                same.levels.pos1 <- which(levels(data1) %in% levels(data2))
-            }
-            if(any(levels(data2) %in% levels(data1))){
-                any.id.levels <- TRUE
-                same.levels.pos2 <- which(levels(data2) %in% levels(data1))
-            }
-            if(any.id.levels == TRUE){
-                common.levels <- unique(c(levels(data1)[same.levels.pos1], levels(data2)[same.levels.pos2]))
-            }
-        }
-        if(any(class(data1) %in% "factor")){ # to compare content
-            data1 <- as.character(data1)
-        }
-        if(any(class(data2) %in% "factor")){ # to compare content
-            data2 <- as.character(data2)
-        }
-        if( ! (is.null(names(data1)) & is.null(names(data2)))){
-            if( ! identical(names(data1), names(data2))){
-                same.name <- FALSE
-            }else{
-                same.name <- TRUE
-                name <- names(data1)
-            }
-            any.id.name <- FALSE
-            if(any(names(data1) %in% names(data2))){
-                any.id.name <- TRUE
-                same.name.pos1 <- which(names(data1) %in% names(data2))
-            }
-            if(any(names(data2) %in% names(data1))){
-                any.id.name <- TRUE
-                same.name.pos2 <- which(names(data2) %in% names(data1))
-            }
-            if(any.id.name == TRUE){
-                common.names <- unique(c(names(data1)[same.name.pos1], names(data2)[same.name.pos2]))
-            }
-        }
-        any.id.element <- FALSE
-        if(any(data1 %in% data2)){
-            any.id.element <- TRUE
-            same.element.pos1 <- which(data1 %in% data2)
-        }
-        if(any(data2 %in% data1)){
-            any.id.element <- TRUE
-            same.element.pos2 <- which(data2 %in% data1)
-        }
-        if(any.id.element == TRUE){
-            common.elements <- unique(c(data1[same.element.pos1], data2[same.element.pos2]))
-        }
-        if(same.length == TRUE & ! all(is.null(same.element.pos1), is.null(same.element.pos2))){
-            names(same.element.pos1) <- NULL
-            names(same.element.pos2) <- NULL
-            if(identical(same.element.pos1, same.element.pos2)){
-                identical.content <- TRUE
-            }else{
-                identical.content <- FALSE
-            }
-        }else{
-            identical.content <- FALSE
-        }
-    }
-    output <- list(same.class = same.class, class = class, same.length = same.length, length = length, same.levels = same.levels, levels = levels, any.id.levels = any.id.levels, same.levels.pos1 = same.levels.pos1, same.levels.pos2 = same.levels.pos2, common.levels = common.levels, same.name = same.name, name = name, any.id.name = any.id.name, same.name.pos1 = same.name.pos1, same.name.pos2 = same.name.pos2, common.names = common.names, any.id.element = any.id.element, same.element.pos1 = same.element.pos1, same.element.pos2 = same.element.pos2, common.elements = common.elements, identical.object = identical.object, identical.content = identical.content)
-    return(output)
-}
-
-
-######## fun_2D_comp() #### comparison of two 2D datasets (row & col names, dimensions, etc.)
-
-
-# Check OK: clear to go Apollo
-fun_2D_comp <- function(data1, data2){
-    # AIM:
-    # compare two 2D datasets of the same class or not. Check and report in a list if the 2 datasets have:
-    # same class
-    # common row names
-    # common column names
-    # same row number
-    # same column number
-    # potential identical rows between the 2 datasets
-    # potential identical columns between the 2 datasets
-    # REQUIRED FUNCTIONS
-    # none
-    # ARGUMENTS
-    # data1: matrix, data frame or table
-    # data2: matrix, data frame or table
-    # RETURN
-    # a list containing:
-    # $same.class: logical. Are class identical ?
-    # $class: classes of the 2 datasets (NULL otherwise)
-    # $same.dim: logical. Are dimension identical ?
-    # $dim: dimension of the 2 datasets (NULL otherwise)
-    # $same.row.nb: logical. Are number of rows identical ?
-    # $row.nb: nb of rows of the 2 datasets if identical (NULL otherwise)
-    # $same.col.nb: logical. Are number of columns identical ?
-    # $col.nb: nb of columns of the 2 datasets if identical (NULL otherwise)
-    # $same.row.name: logical. Are row names identical ?
-    # $row.name: name of rows of the 2 datasets if identical (NULL otherwise)
-    # $same.col.name: logical. Are column names identical ?
-    # $col.name: name of columns of the 2 datasets if identical (NULL otherwise)
-    # $any.id.row: logical. is there identical rows ?
-    # $same.row.pos1: position, in data1, of the rows identical in data2
-    # $same.row.pos2: position, in data2, of the rows identical in data1
-    # $any.id.col: logical. is there identical columns ?
-    # $same.col.pos1: position in data1 of the cols identical in data2
-    # $same.col.pos2: position in data2 of the cols identical in data1
-    # $identical.object: logical. Are objects identical (including row & column names)?
-    # $identical.content: logical. Are content objects identical (identical excluding row & column names)?
-    # EXAMPLES
-    # obs1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; obs2 = as.data.frame(matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5]))) ; fun_2D_comp(obs1, obs2)
-    # DEBUGGING
-    # data1 = matrix(1:10, ncol = 5) ; data2 = matrix(1:10, ncol = 5) # for function debugging
-    # data1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; data2 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
-    # data1 = matrix(1:15, byrow = TRUE, ncol = 5, dimnames = list(letters[1:3], LETTERS[1:5])) ; data2 = matrix(1:10, byrow = TRUE, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
-    # data1 = matrix(1:15, ncol = 5, dimnames = list(letters[1:3], LETTERS[1:5])) ; data2 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
-    # data1 = matrix(1:15, ncol = 5, dimnames = list(paste0("A", letters[1:3]), LETTERS[1:5])) ; data2 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
-    # data1 = matrix(1:15, ncol = 5, dimnames = list(letters[1:3], LETTERS[1:5])) ; data2 = matrix(1:12, ncol = 4, dimnames = list(letters[1:3], LETTERS[1:4])) # for function debugging
-    # data1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; data2 = matrix(101:110, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) # for function debugging
-    # data1 = data.frame(a = 1:3, b= letters[1:3], row.names = LETTERS[1:3]) ; data2 = data.frame(A = 1:3, B= letters[1:3]) # for function debugging
-    # data1 = matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5])) ; data2 = as.data.frame(matrix(1:10, ncol = 5, dimnames = list(letters[1:2], LETTERS[1:5]))) # for function debugging
-    # data1 = table(Exp1 = c("A", "A", "A", "B", "B", "B"), Exp2 = c("A1", "B1", "A1", "C1", "C1", "B1")) ; data2 = data.frame(A = 1:3, B= letters[1:3]) # for function debugging
-    # argument checking
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    if( ! any(class(data1) %in% c("matrix", "data.frame", "table"))){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A MATRIX, DATA FRAME OR TABLE\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! any(class(data2) %in% c("matrix", "data.frame", "table"))){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A MATRIX, DATA FRAME OR TABLE\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end argument checking
-    same.class <- NULL
-    class <- NULL
-    same.dim <- NULL
-    dim <- NULL
-    same.row.nb <- NULL
-    row.nb <- NULL
-    same.col.nb <- NULL
-    col.nb <- NULL
-    same.row.name <- NULL
-    row.name <- NULL
-    same.col.name <- NULL
-    col.name <- NULL
-    any.id.row <- NULL
-    same.row.pos1 <- NULL
-    same.row.pos2 <- NULL
-    any.id.col <- NULL
-    same.col.pos1 <- NULL
-    same.col.pos2 <- NULL
-    identical.object <- NULL
-    identical.content <- NULL
-    if(identical(data1, data2) & any(class(data1) %in% c("matrix", "data.frame", "table"))){
-        same.class <- TRUE
-        class <- class(data1)
-        same.dim <- TRUE
-        dim <- dim(data1)
-        same.row.nb <- TRUE
-        row.nb <- nrow(data1)
-        same.col.nb <- TRUE
-        col.nb <- ncol(data1)
-        same.row.name <- TRUE
-        row.name <- dimnames(data1)[[1]]
-        same.col.name <- TRUE
-        col.name <- dimnames(data1)[[2]]
-        any.id.row <- TRUE
-        same.row.pos1 <- 1:row.nb
-        same.row.pos2 <- 1:row.nb
-        any.id.col <- TRUE
-        same.col.pos1 <- 1:col.nb
-        same.col.pos2 <- 1:col.nb
-        identical.object <- TRUE
-        identical.content <- TRUE
-    }else{
-        identical.object <- FALSE
-        if(all(class(data1) == "table") & length(dim(data1)) == 1){
-            tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT IS A 1D TABLE. USE THE info_1D_dataset_fun FUNCTION\n\n================\n\n")
-            stop(tempo.cat)
-        }
-        if(all(class(data2) == "table") & length(dim(data2)) == 1){
-            tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT IS A 1D TABLE. USE THE info_1D_dataset_fun FUNCTION\n\n================\n\n")
-            stop(tempo.cat)
-        }
-        if( ! identical(class(data1), class(data2))){
-            same.class <- FALSE
-        }else if( ! any(class(data1) %in% c("matrix", "data.frame", "table"))){
-            tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 AND data2 ARGUMENTS MUST BE EITHER MATRIX, DATA FRAME OR TABLE\n\n================\n\n")
-            stop(tempo.cat)
-        }else{
-            same.class <- TRUE
-            class <- class(data1)
-        }
-        if( ! identical(dim(data1), dim(data2))){
-            same.dim <- FALSE
-        }else{
-            same.dim <- TRUE
-            dim <- dim(data1)
-        }
-        if( ! identical(nrow(data1), nrow(data2))){
-            same.row.nb <- FALSE
-        }else{
-            same.row.nb <- TRUE
-            row.nb <- nrow(data1)
-        }
-        if( ! identical(ncol(data1), ncol(data2))){
-            same.col.nb <- FALSE
-        }else{
-            same.col.nb <- TRUE
-            col.nb <- ncol(data1)
-        }
-        # row and col names
-        if(is.null(dimnames(data1)) & is.null(dimnames(data2))){
-            same.row.name <- TRUE
-            same.col.name <- TRUE
-            # row and col names remain NULL
-        }else if((is.null(dimnames(data1)) &  ! is.null(dimnames(data2))) | ( ! is.null(dimnames(data1)) & is.null(dimnames(data2)))){
-            same.row.name <- FALSE
-            same.col.name <- FALSE
-            # row and col names remain NULL
-        }else{
-            if( ! identical(dimnames(data1)[[1]], dimnames(data2)[[1]])){
-                same.row.name <- FALSE
-                # row names remain NULL
-            }else{
-                same.row.name <- TRUE
-                row.name <- dimnames(data1)[[1]]
-            }
-            if( ! identical(dimnames(data1)[[2]], dimnames(data2)[[2]])){
-                same.col.name <- FALSE
-                # col names remain NULL
-            }else{
-                same.col.name <- TRUE
-                col.name <- dimnames(data1)[[2]]
-            }
-        }
-        # identical row and col content
-        if(all(class(data1) == "table")){
-            as.data.frame(matrix(data1, ncol = ncol(data1)), stringsAsFactors = FALSE)
-        }else if(all(class(data1) == "matrix")){
-            data1 <- as.data.frame(data1, stringsAsFactors = FALSE)
-        }else if(all(class(data1) == "data.frame")){
-            data1 <- data.frame(lapply(data1, as.character), stringsAsFactors=FALSE)
-        }
-        if(all(class(data2) == "table")){
-            as.data.frame(matrix(data2, ncol = ncol(data2)), stringsAsFactors = FALSE)
-        }else if(all(class(data2) == "matrix")){
-            data2 <- as.data.frame(data2, stringsAsFactors = FALSE)
-        }else if(all(class(data2) == "data.frame")){
-            data2 <- data.frame(lapply(data2, as.character), stringsAsFactors=FALSE)
-        }
-        row.names(data1) <- paste0("A", 1:nrow(data1))
-        row.names(data2) <- paste0("A", 1:nrow(data2))
-        if(same.col.nb == TRUE){ # because if not the same col nb, the row cannot be identical
-            same.row.pos1 <- suppressWarnings(which(mapply(FUN = identical, c(as.data.frame(t(data1), stringsAsFactors = FALSE)), c(as.data.frame(t(data2), stringsAsFactors = FALSE)))))
-            same.row.pos2 <- suppressWarnings(which(mapply(FUN = identical, c(as.data.frame(t(data2), stringsAsFactors = FALSE)), c(as.data.frame(t(data1), stringsAsFactors = FALSE)))))
-            names(same.row.pos1) <- NULL
-            names(same.row.pos2) <- NULL
-            if(all(is.na(same.row.pos1))){
-                same.row.pos1 <- NULL
-            }else{
-                same.row.pos1 <- same.row.pos1[ ! is.na(same.row.pos1)]
-                any.id.row <- TRUE
-            }
-            if(all(is.na(same.row.pos2))){
-                same.row.pos2 <- NULL
-            }else{
-                same.row.pos2 <- same.row.pos2[ ! is.na(same.row.pos2)]
-                any.id.row <- TRUE
-            }
-            if(is.null(same.row.pos1) & is.null(same.row.pos2)){
-                any.id.row <- FALSE
-            }
-        }else{
-            any.id.row <- FALSE
-            # same.row.pos1 and 2 remain NULL
-        }
-        if(same.row.nb == TRUE){ # because if not the same row nb, the col cannot be identical
-            same.col.pos1 <- suppressWarnings(which(mapply(FUN = identical, c(data1), c(data2))))
-            same.col.pos2 <- suppressWarnings(which(mapply(FUN = identical, c(data2), c(data1))))
-            names(same.col.pos1) <- NULL
-            names(same.col.pos2) <- NULL
-            if(all(is.na(same.col.pos1))){
-                same.col.pos1 <- NULL
-            }else{
-                same.col.pos1 <- same.col.pos1[ ! is.na(same.col.pos1)]
-                any.id.col <- TRUE
-            }
-            if(all(is.na(same.col.pos2))){
-                same.col.pos2 <- NULL
-            }else{
-                same.col.pos2 <- same.col.pos2[ ! is.na(same.col.pos2)]
-                any.id.col <- TRUE
-            }
-            if(is.null(same.col.pos1) & is.null(same.col.pos2)){
-                any.id.col <- FALSE
-            }
-        }else{
-            any.id.col <- FALSE
-            # same.col.pos1 and 2 remain NULL
-        }
-        if(same.dim == TRUE & ! all(is.null(same.row.pos1), is.null(same.row.pos2), is.null(same.col.pos1), is.null(same.col.pos2))){ # same.dim == TRUE means that same.row.nb == TRUE and same.col.nb == TRUE, meaning that row.nb != NULL and col.nb != NULL. Thus, no need to include these checkings
-            if(identical(same.row.pos1, 1:row.nb) & identical(same.row.pos2, 1:row.nb) & identical(same.col.pos1, 1:col.nb) & identical(same.col.pos2, 1:col.nb)){
-                identical.content <- TRUE
-            }
-        }else{
-            identical.content <- FALSE
-        }
-    }
-    output <- list(same.class = same.class, class = class, same.dim = same.dim, dim = dim, same.row.nb = same.row.nb, row.nb = row.nb, same.col.nb = same.col.nb , col.nb = col.nb, same.row.name = same.row.name, row.name = row.name, same.col.name = same.col.name, col.name = col.name, any.id.row = any.id.row, same.row.pos1 = same.row.pos1, same.row.pos2 = same.row.pos2, any.id.col = any.id.col, same.col.pos1 = same.col.pos1, same.col.pos2 = same.col.pos2, identical.object = identical.object, identical.content = identical.content)
-    return(output)
-}
-
-
-######## fun_list_comp() #### comparison of two lists
-
-
-# Check OK: clear to go Apollo
-fun_list_comp <- function(data1, data2){
-    # AIM:
-    # compare two lists. Check and report in a list if the 2 datasets have:
-    # same length
-    # common names
-    # common compartments
-    # REQUIRED FUNCTIONS
-    # none
-    # ARGUMENTS
-    # data1: list
-    # data2: list
-    # RETURN
-    # a list containing:
-    # $same.length: logical. Are number of elements identical?
-    # $length: number of elements in the 2 datasets (NULL otherwise)
-    # $same.name: logical. Are element names identical ?
-    # $name: name of elements of the 2 datasets if identical (NULL otherwise)
-    # $any.id.name: logical. Is there any element names identical ?
-    # $same.name.pos1: position, in data1, of the element names identical in data2
-    # $same.name.pos2: position, in data2, of the compartment names identical in data1
-    # $any.id.compartment: logical. is there any identical compartments ?
-    # $same.compartment.pos1: position, in data1, of the compartments identical in data2
-    # $same.compartment.pos2: position, in data2, of the compartments identical in data1
-    # $identical.object: logical. Are objects identical (kind of object, compartment names and content)?
-    # $identical.content: logical. Are content objects identical (identical compartments excluding compartment names)?
-    # EXAMPLES
-    # obs1 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; obs2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; fun_list_comp(obs1, obs2)
-    # obs1 = list(1:5, LETTERS[1:2]) ; obs2 = list(a = 1:5, b = LETTERS[1:2]) ; fun_list_comp(obs1, obs2)
-    # obs1 = list(b = 1:5, c = LETTERS[1:2]) ; obs2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; fun_list_comp(obs1, obs2)
-    # obs1 = list(b = 1:5, c = LETTERS[1:2]) ; obs2 = list(LETTERS[5:9], matrix(1:6), 1:5) ; fun_list_comp(obs1, obs2)
-    # DEBUGGING
-    # data1 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) ; data2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) # for function debugging
-    # data1 = list(a = 1:5, b = LETTERS[1:2]) ; data2 = list(a = 1:5, b = LETTERS[1:2], d = matrix(1:6)) # for function debugging
-    # argument checking
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    if( ! any(class(data1) %in% "list")){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data1 ARGUMENT MUST BE A LIST\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! any(class(data2) %in% "list")){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data2 ARGUMENT MUST BE A LIST\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end argument checking
-    same.length <- NULL
-    length <- NULL
-    same.name <- NULL
-    name <- NULL
-    any.id.name <- NULL
-    same.name.pos1 <- NULL
-    same.name.pos2 <- NULL
-    any.id.compartment <- NULL
-    same.compartment.pos1 <- NULL
-    same.compartment.pos2 <- NULL
-    identical.object <- NULL
-    identical.content <- NULL
-    if(identical(data1, data2)){
-        same.length <- TRUE
-        length <- length(data1)
-        if( ! is.null(names(data1))){
-            same.name <- TRUE
-            name <- names(data1)
-            any.id.name <- TRUE
-            same.name.pos1 <- 1:length(data1)
-            same.name.pos2 <- 1:length(data2)
-        }
-        any.id.compartment <- TRUE
-        same.compartment.pos1 <- 1:length(data1)
-        same.compartment.pos2 <- 1:length(data2)
-        identical.object <- TRUE
-        identical.content <- TRUE
-    }else{
-        identical.object <- FALSE
-        if( ! identical(length(data1), length(data2))){
-            same.length<- FALSE
-        }else{
-            same.length<- TRUE
-            length <- length(data1)
-        }
-        if( ! (is.null(names(data1)) & is.null(names(data2)))){
-            if( ! identical(names(data1), names(data2))){
-                same.name <- FALSE
-            }else{
-                same.name <- TRUE
-                name <- names(data1)
-            }
-            any.id.name <- FALSE
-            if(any(names(data1) %in% names(data2))){
-                any.id.name <- TRUE
-                same.name.pos1 <- which(names(data1) %in% names(data2))
-            }
-            if(any(names(data2) %in% names(data1))){
-                any.id.name <- TRUE
-                same.name.pos2 <- which(names(data2) %in% names(data1))
-            }
-        }
-        names(data1) <- NULL
-        names(data2) <- NULL
-        any.id.compartment <- FALSE
-        if(any(data1 %in% data2)){
-            any.id.compartment <- TRUE
-            same.compartment.pos1 <- which(data1 %in% data2)
-        }
-        if(any(data2 %in% data1)){
-            any.id.compartment <- TRUE
-            same.compartment.pos2 <- which(data2 %in% data1)
-        }
-        if(same.length == TRUE & ! all(is.null(same.compartment.pos1), is.null(same.compartment.pos2))){
-            if(identical(same.compartment.pos1, same.compartment.pos2)){
-                identical.content <- TRUE
-            }else{
-                identical.content <- FALSE
-            }
-        }else{
-            identical.content <- FALSE
-        }
-    }
-    output <- list(same.length = same.length, length = length, same.name = same.name, name = name, any.id.name = any.id.name, same.name.pos1 = same.name.pos1, same.name.pos2 = same.name.pos2, any.id.compartment = any.id.compartment, same.compartment.pos1 = same.compartment.pos1, same.compartment.pos2 = same.compartment.pos2, identical.object = identical.object, identical.content = identical.content)
-    return(output)
-}
-
-
-################ Object modification
-
-
-######## fun_dataframe_remodeling() #### remodeling a data frame to have column name as a qualitative column and vice-versa
-
-
-# Check OK: clear to go Apollo
-fun_dataframe_remodeling <- function(data, quanti.col.name = "quanti", quali.col.name = "quali"){
-    # AIM:
-    # if the data frame is made of numeric columns, a new data frame is created, with the 1st column gathering all the numeric values, and the 2nd column being the name of the columns of the initial data frame
-    
-    
-    
-    # If the data frame is made of one numeric column and one character or factor column, a new data frame is created, with the new columns corresponding to the split numeric values (according to the character column). NA are added a the end of each column to have the same number of rows
-    
-    
-    
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS
-    # data: data frame to convert
-    # quanti.col.name: optional name for the quanti column of the new data frame
-    # quali.col.name: optional name for the quali column of the new data frame
-    # RETURN
-    # the modified data frame
-    # EXAMPLES
-    # obs <- data.frame(col1 = (1:4)*10, col2 = c("A", "B", "A", "A")) ; obs ; fun_dataframe_remodeling(obs)
-    # obs <- data.frame(col1 = (1:4)*10, col2 = 5:8) ; obs ; fun_dataframe_remodeling(obs, quanti.col.name = "quanti", quali.col.name = "quali")
-    # DEBUGGING
-    # data = data.frame(a = 1:3, b = 4:6) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
-    # data = data.frame(a = 1:3, b = 4:6, c = 11:13) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
-    # data = data.frame(a = 1:3, b = letters[1:3]) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
-    # data = data.frame(a = 1:3, b = letters[1:3]) ; quanti.col.name = "TEST" ; quali.col.name = "quali" # for function debugging
-    # data = data.frame(b = letters[1:3], a = 1:3) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
-    # data = data.frame(b = c("e", "e", "h"), a = 1:3) ; quanti.col.name = "quanti" ; quali.col.name = "quali" # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = quanti.col.name, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = quali.col.name, class = "character", length = 1) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    if( ! any(class(data) %in% "data.frame")){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data ARGUMENT MUST BE A DATA FRAME\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end argument checking
-    tempo.factor <- unlist(lapply(data, class))
-    for(i in 1:length(tempo.factor)){ # convert factor columns as character
-        if(all(tempo.factor[i] == "factor")){
-            data[, i] <- as.character(data[, i])
-        }
-    }
-    tempo.factor <- unlist(lapply(data, mode))
-    if(length(data) == 2){
-        if( ! ((mode(data[, 1]) == "character" & mode(data[, 2]) == "numeric") | mode(data[, 2]) == "character" & mode(data[, 1]) == "numeric" | mode(data[, 2]) == "numeric" & mode(data[, 1]) == "numeric") ){
-            tempo.cat <- paste0("\n\n================\n\nERROR: IF data ARGUMENT IS A DATA FRAME MADE OF 2 COLUMNS, EITHER A COLUMN MUST BE NUMERIC AND THE OTHER CHARACTER, OR THE TWO COLUMNS MUST BE NUMERIC\n\n================\n\n")
-            stop(tempo.cat)
-        }
-        if((mode(data[, 1]) == "character" | mode(data[, 2]) == "character") & (quanti.col.name != "quanti" | quali.col.name != "quali")){
-            tempo.cat <- paste0("\n\n================\n\nERROR: IMPROPER quanti.col.name OR quali.col.name RESETTINGS. THESE ARGUMENTS ARE RESERVED FOR DATA FRAMES MADE OF n NUMERIC COLUMNS ONLY\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }else{
-        if( ! all(tempo.factor %in% "numeric")){
-            tempo.cat <- paste0("\n\n================\n\nERROR: IF data ARGUMENT IS A DATA FRAME MADE OF ONE COLUMN, OR MORE THAN 2 COLUMNS, THESE COLUMNS MUST BE NUMERIC\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if(( ! any(tempo.factor %in% "character")) & is.null(names(data))){
-        tempo.cat <- paste0("\n\n================\n\nERROR: NUMERIC DATA FRAME in the data ARGUMENT MUST HAVE COLUMN NAMES\n\n================\n\n")
-        stop()
-    }
-    if(all(tempo.factor %in% "numeric")){
-        quanti <- NULL
-        for(i in 1:length(data)){
-            quanti <-c(quanti, data[, i])
-        }
-        quali <- rep(names(data), each = nrow(data))
-        output.data <- data.frame(quanti, quali)
-        names(output.data) <- c(quanti.col.name, quali.col.name)
-    }else{
-        if(class(data[, 1]) == "character"){
-            data <- cbind(data[2], data[1])
-        }
-        nc.max <- max(table(data[, 2])) # effectif maximum des classes
-        nb.na <- nc.max - table(data[,2]) # nombre de NA à ajouter pour réaliser la data frame
-        tempo<-split(data[, 1], data[, 2])
-        for(i in 1:length(tempo)){tempo[[i]] <- append(tempo[[i]], rep(NA, nb.na[i]))} # des NA doivent être ajoutés lorsque les effectifs sont différents entre les classes. C'est uniquement pour que chaque colonne ait le même nombre de lignes
-        output.data<-data.frame(tempo)
-    }
-    return(output.data)
-}
-
-
-######## fun_refactorization() #### remove classes that are not anymore present in factors or factor columns in data frames
-
-
-# Check OK: clear to go Apollo
-fun_refactorization <- function(data, also.ordered = TRUE){
-    # AIM:
-    # refactorize a factor or the factor columns of a data frame, such as only the class present are in the levels (no empty levels). The class order in levels is kept
-    # useful to remove the empty classes after row removing for instance
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS
-    # data: factor (ordered or not) or data frame
-    # also.ordered: refactorize also ordered factors? This to deal with ordered factors that have class "ordered" "factor"
-    # RETURN
-    # a list containing:
-    # $data: the modified object
-    # $removed: the removed classes for a factor and a list of the removed classes for each factor class of the data frame
-    # EXAMPLES
-    # obs <- data.frame(a = LETTERS[1:6], b = paste0(letters[1.6], c(1,1,2,2,3,3)), c = ordered(LETTERS[7:12]), d = 1:6, e = "A")[-c(1:2),] ; sapply(obs, levels) ; fun_refactorization(obs, FALSE)
-    # obs <- data.frame(a = LETTERS[1:6], b = paste0(letters[1.6], c(1,1,2,2,3,3)), c = ordered(LETTERS[7:12]), d = 1:6, e = "A")[-c(1:2),] ; sapply(obs, levels) ; fun_refactorization(obs, TRUE)
-    # obs <- factor(LETTERS[1:6])[-c(1:2)] ; obs ; fun_refactorization(obs, TRUE)
-    # obs <- ordered(LETTERS[1:6])[-c(1:2)] ; obs ; fun_refactorization(obs, TRUE)
-    # obs <- factor(LETTERS[1:6], levels = rev(LETTERS[1:6]))[-c(1:2)] ; obs ; fun_refactorization(obs, FALSE)
-    # DEBUGGING
-    # data <- data.frame(a = LETTERS[1:6], b = paste0(letters[1.6], c(1,1,2,2,3,3)), c = ordered(LETTERS[7:12]), d = 1:6, e = "A") ; data <- data[-c(1:2),] ; also.ordered <- TRUE # for function debugging
-    # data <- factor(LETTERS[1:6])[-c(1:2)] ; also.ordered <- TRUE # for function debugging
-    # data <- ordered(LETTERS[1:6])[-c(1:2)] ; also.ordered <- TRUE # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = also.ordered, class = "logical", length = 1) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    if(also.ordered == FALSE){
-        if( ! (all(class(data) == "data.frame") | all(class(data) == "factor"))){
-            tempo.cat <- paste0("\n\n================\n\nERROR: data ARGUMENT MUST BE A FACTOR (NON ORDERED BECAUSE THE also.ordered ARGUMENT IS SET TO FALSE) OR A DATA FRAME\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if(also.ordered == TRUE){
-        if( ! (all(class(data) == "data.frame") | all(class(data) == "factor") | all(class(data) %in% c("ordered", "factor")))){
-            tempo.cat <- paste0("\n\n================\n\nERROR: data ARGUMENT MUST BE A FACTOR OR A DATA FRAME\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    # end argument checking
-    text <- NULL
-    if(all(class(data) == "factor")){
-        tempo.keep.log <- levels(data) %in% unique(data)
-        text <- levels(data)[ ! tempo.keep.log]
-        data <- factor(data, levels = levels(data)[tempo.keep.log])
-    }else if(all(class(data) %in% c("ordered", "factor"))){
-        tempo.keep.log <- levels(data) %in% unique(data)
-        text <- levels(data)[ ! tempo.keep.log]
-        data <- ordered(data, levels = levels(data)[tempo.keep.log])
-    }else if(all(class(data) == "data.frame")){
-        text <- vector("list", length(data))
-        names(text) <- names(data)
-        tempo.factor.col <- sapply(sapply(lapply(data, class), FUN = "%in%", "factor"), FUN = "all") # get the factor column (logical)
-        for(i in 1:length(tempo.factor.col)){
-            if(tempo.factor.col[i] == TRUE){
-                tempo.keep.log <- levels(data[[i]]) %in% unique(data[[i]])
-                text[[i]] <- levels(data[[i]])[ ! tempo.keep.log]
-                data[[i]] <- factor(data[[i]], levels = levels(data[[i]])[tempo.keep.log])
-            }
-        }
-        tempo.ordered.col <- sapply(sapply(lapply(data, class), FUN = "%in%", "ordered"), FUN = "any") # get the ordered factor column (logical) if they exist
-        if(also.ordered == TRUE){
-            for(i in 1:length(tempo.ordered.col)){
-                if(tempo.ordered.col[i] == TRUE){
-                    tempo.keep.log <- levels(data[[i]]) %in% unique(data[[i]])
-                    text[[i]] <- levels(data[[i]])[ ! tempo.keep.log]
-                    data[[i]] <- ordered(data[[i]], levels = levels(data[[i]])[tempo.keep.log])
-                }
-            }
-        }
-        text <- text[(tempo.factor.col | tempo.ordered.col) & ! (sapply(text, FUN = length) == 0)] # remove the compartments of text that are not modified factors columns of data frame
-    }
-    output <- list(data = data, removed = text)
-    return(output)
-}
-
-
-######## fun_rounding() #### Rounding number if decimal present
-
-
-# Check OK: clear to go Apollo
-fun_rounding <- function(data, dec.nb = 2, after.lead.zero = TRUE){
-    # AIM:
-    # round a vector of values, if decimal, with the desired number of decimal digits after the decimal leading zeros
-    # BEWARE
-    # Work well with numbers as character strings, but not always with numerical numbers because of the floating point
-    # Numeric values are really truncated from a part of their decimal digits, whatever options(digits) settings
-    # ARGUMENTS
-    # data: a vector of numbers (numeric or character mode)
-    # dec.nb: number of required decimal digits
-    # after.lead.zero: logical. If FALSE, rounding is performed for all the decimal numbers, whatever the leading zeros (e.g., 0.123 -> 0.12 and 0.00128 -> 0.00). If TRUE, dec.nb are taken after the leading zeros (e.g., 0.123 -> 0.12 and 0.00128 -> 0.0013)
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # RETURN
-    # the modified vector
-    # EXAMPLES
-    # cat(fun_rounding(data = c(10, 100.001, 333.0001254, 12312.1235), dec.nb = 2, after.lead.zero = FALSE))
-    # cat(fun_rounding(data = c("10", "100.001", "333.0001254", "12312.1235"), dec.nb = 2, after.lead.zero = FALSE))
-    # DEBUGGING
-    # data = data = c(10, 100.001, 333.0001254, 12312.1235) ; dec.nb = 2 ; after.lead.zero = FALSE # # for function debugging
-    # data = data = c("10", "100.001", "333.0001254", "12312.1235") ; dec.nb = 2 ; after.lead.zero = TRUE # # for function debugging
-    # argument checking
-    if( ! (all(typeof(data) == "character") | all(typeof(data) == "double") | all(typeof(data) == "integer"))){
-        tempo.cat <- paste0("\n\n================\n\nERROR: data ARGUMENT MUST BE A VECTOR OF NUMBERS (IN NUMERIC OR CHARACTER MODE)\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = dec.nb, typeof = "integer", length = 1, double.as.integer.allowed = TRUE, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = after.lead.zero, class = "logical", length = 1) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # end argument checking
-    tempo <- grepl(x = data, pattern = "\\.") # detection of decimal numbers
-    ini.mode <- mode(data)
-    data <- as.character(data) # to really truncate decimal digits
-    for(i in 1:length(data)){ # scan all the numbers of the vector
-        if(tempo[i] == TRUE){ # means decimal number
-            if(after.lead.zero == TRUE){
-                zero.pos <- unlist(gregexpr(text=data[i], pattern = 0)) # recover all the position of the zeros in the number. -1 if no zeros (do not record the leading and trailing zeros)
-            }else{
-                zero.pos <- -1 # -1 as if no zero
-            }
-            dot.pos <- unlist(gregexpr(text=data[i], pattern = "\\.")) # recover all the position of the zeros in the number
-            digit.pos <- unlist(gregexpr(text=data[i], pattern = "[[:digit:]]")) # recover all the position of the digits in the number
-            dec.pos <- digit.pos[digit.pos > dot.pos]
-            count <- 0
-            while((dot.pos + count + 1) %in% zero.pos & (dot.pos + count + 1) <= max(dec.pos) & (count + dec.nb) < length(dec.pos)){ # count the number of leading zeros in the decimal part
-                count <- count + 1
-            }
-            data[i] <- formatC(as.numeric(data[i]), digits = (count + dec.nb), format = "f")
-        }
-    }
-    if(ini.mode != "character"){
-        data <- as.numeric(data)
-    }
-    return(data)
-}
-
-
-######## fun_90clock_matrix_rot() #### 90° clockwise matrix rotation
-
-
-# Check OK: clear to go Apollo
-fun_90clock_matrix_rot <- function(data){
-    # AIM:
-    # 90° clockwise matrix rotation
-    # applied twice, the function provide the mirror matrix, according to vertical and horizontal symmetry
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS
-    # data: matrix (matrix class)
-    # RETURN
-    # the modified matrix
-    # EXAMPLES
-    # obs <- matrix(1:10, ncol = 1) ; obs ; fun_90clock_matrix_rot(obs)
-    # obs <- matrix(LETTERS[1:10], ncol = 5) ; obs ; fun_90clock_matrix_rot(obs)
-    # DEBUGGING
-    # data = matrix(1:10, ncol = 1)
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    if( ! any(class(data) %in% "matrix")){
-        tempo.cat <- paste0("\n\n================\n\nERROR: THE data ARGUMENT MUST BE A MATRIX\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end argument checking
-    for (i in 1:ncol(data)){data[,i] <- rev(data[,i])}
-    data <- t(data)
-    return(data)
-}
-
-
-######## fun_hexa_hsv_color_matrix() #### Conversion of a numeric matrix into hexadecimal color matrix
-
-
-# Check OK: clear to go Apollo
-fun_hexa_hsv_color_matrix <- function(mat1, mat.hsv.h = TRUE, notch = 1, s = 1, v = 1, forced.color = NULL){
-    # AIM:
-    # convert a matrix made of numbers into a hexadecimal matrix for rgb colorization
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS:
-    # mat1: matrix 1 of non negative numerical values that has to be colored (matrix class). NA allowed
-    # mat.hsv.h: logical. Is mat1 the h of hsv colors ? (if TRUE, mat1 must be between zero and 1)
-    # notch: single value between 0 and 1 to shift the successive colors on the hsv circle by + notch
-    # s: s argument of hsv(). Must be between 0 and 1
-    # v: v argument of hsv(). Must be between 0 and 1
-    # forced.color: Must be NULL or hexadecimal color code or name given by colors(). The first minimal values of mat1 will be these colors. All the color of mat1 can be forced using this argument
-    # RETURN
-    # a list containing:
-    # $mat1.name: name of mat1
-    # $colored.mat: colors of mat1 in hexa
-    # $problem: logical. Is any colors of forced.color overlap the colors designed by the function. NULL if forced.color = NULL
-    # $text.problem: text when overlapping colors. NULL if forced.color = NULL or problem == FALSE
-    # EXAMPLES
-    # mat1 = matrix(c(1,1,1,2,1,5,9,NA), ncol = 2) ; dimnames(mat1) <- list(LETTERS[1:4], letters[1:2]) ; fun_hexa_hsv_color_matrix(mat1, mat.hsv.h = FALSE, notch = 1, s = 1, v = 1, forced.color = NULL)
-    # DEBUGGING
-    # mat1 = matrix(c(1,1,1,2,1,5,9,NA), ncol = 2) ; dimnames(mat1) <- list(LETTERS[1:4], letters[1:2]); mat.hsv.h = FALSE ; notch = 1 ; s = 1 ; v = 1 ; forced.color = c(hsv(1,1,1), hsv(0,0,0)) # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = mat1, mode = "numeric", class = "matrix", na.contain = TRUE, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = mat.hsv.h, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = notch, mode = "numeric", length = 1, prop = TRUE) ; eval(ee)
-    tempo <- fun_param_check(data = s, mode = "numeric", length = 1, prop = TRUE) ; eval(ee)
-    tempo <- fun_param_check(data = v, mode = "numeric", length = 1, prop = TRUE) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    if(mat.hsv.h == TRUE & fun_param_check(data = mat1, mode = "numeric", prop = TRUE, print = FALSE)$problem == TRUE){
-        tempo.cat <- paste0("\n\n================\n\nERROR: mat1 ARGUMENT MUST BE A MATRIX OF PROPORTIONS SINCE THE mat.hsv.h ARGUMENT IS SET TO TRUE\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if( ! is.null(forced.color)){
-        tempo <- fun_param_check(data = forced.color, class = "character")
-        if(tempo$problem == TRUE){
-            stop()
-        }
-        if( ! all(forced.color %in% colors() | grepl(pattern = "^#", forced.color))){ # check that all strings of forced.color start by #
-            tempo.cat <- paste0("\n\n================\n\nERROR: forced.color ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # AND/OR COLOR NAMES GIVEN BY colors()\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    # end argument checking
-    problem <- NULL
-    text.problem <- NULL
-    mat1.name <- deparse(substitute(mat1))
-    # change the scale of the plotted matrix
-    if(mat.hsv.h == TRUE){
-        if(any(min(mat1, na.rm = TRUE) < 0 | max(mat1, na.rm = TRUE) > 1, na.rm = TRUE)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: mat1 MUST BE MADE OF VALUES BETWEEN 0 AND 1 BECAUSE mat.hsv.h ARGUMENT SET TO TRUE\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }else{
-        if(any(mat1 - floor(mat1) > 0, na.rm = TRUE) | any(mat1 == 0, na.rm = TRUE)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: mat1 MUST BE MADE OF INTEGER VALUES WITHOUT 0 BECAUSE mat.hsv.h ARGUMENT SET TO FALSE\n\n================\n\n")
-            stop(tempo.cat)
-        }else{
-            mat1 <- mat1 / max(mat1, na.rm = TRUE)
-        }
-    }
-    if(notch != 1){
-        different.color <- unique(as.vector(mat1))
-        different.color <- different.color[ ! is.na(different.color)]
-        tempo.different.color <- different.color + c(0, cumsum(rep(notch, length(different.color) - 1)))
-        tempo.different.color <- tempo.different.color - floor(tempo.different.color)
-        if(any(duplicated(tempo.different.color) == TRUE)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: DUPLICATED VALUES AFTER USING notch (", paste(tempo.different.color[duplicated(tempo.different.color)], collapse = " "), "). TRY ANOTHER notch VALUE\n\n================\n\n")
-            stop(tempo.cat)
-        }else if(length(different.color) != length(tempo.different.color)){
-            tempo.cat <- paste0("\n\n================\n\nERROR: LENGTH OF different.color (", paste(different.color, collapse = " "), ") DIFFERENT FROM LENGTH OF tempo.different.color (", paste(tempo.different.color, collapse = " "), ")\n\n================\n\n")
-            stop(tempo.cat)
-        }else{
-            for(i in 1:length(different.color)){
-                mat1[mat1 == different.color[i]] <- tempo.different.color[i]
-            }
-        }
-    }
-    if( ! is.null(forced.color)){
-        hexa.values.to.change <- hsv(unique(sort(mat1))[1:length(forced.color)], s, v)
-    }
-    mat1[ ! is.na(mat1)] <- hsv(mat1[ ! is.na(mat1)], s, v)
-    if( ! is.null(forced.color)){
-        if(any(forced.color %in% mat1, na.rm = TRUE)){
-            problem <- TRUE
-            text.problem <- paste0("THE FOLLOWING COLORS WHERE INTRODUCED USING forced.color BUT WHERE ALREADY PRESENT IN THE COLORED MATRIX :", paste(forced.color[forced.color %in% mat1], collapse = " "))
-        }else{
-            problem <- FALSE
-        }
-        for(i in 1:length(hexa.values.to.change)){
-            if( ! any(mat1 == hexa.values.to.change[i], na.rm = TRUE)){
-                tempo.cat <- paste0("\n\n================\n\nERROR: THE ", hexa.values.to.change[i], " VALUE FROM hexa.values.to.change IS NOT REPRESENTED IN mat1 : ", paste(unique(as.vector(mat1)), collapse = " "), "\n\n================\n\n")
-                stop(tempo.cat)
-            }else{
-                mat1[which(mat1 == hexa.values.to.change[i])] <- forced.color[i]
-            }
-        }
-    }
-    output <- list(mat1.name = mat1.name, colored.mat = mat1, problem = problem, text.problem = text.problem)
-    return(output)
-}
-
-
-################ Graphics
-
-
-# this order can be used:
-# fun_window_width_resizing()
-# fun_open_window()
-# fun_graph_param_prior_plot() # not for ggplot2
-# plot() or any other plotting
-# fun_feature_post_plot() if fun_graph_param_prior_plot() has been used # not for ggplot2
-# fun_close_specif_window()
-
-
-######## fun_window_width_resizing() #### window width depending on classes to plot
-
-
-# Check OK: clear to go Apollo
-fun_window_width_resizing <- function(class.nb, inches.per.class.nb = 1, ini.window.width = 7, inch.left.space, inch.right.space, boundarie.space = 0.5){
-    # AIM:
-    # rescale the width of a window to open depending on the number of classes to plot
-    # can be used for height, considering that it is as if it was a width
-    # this order can be used:
-    # fun_window_width_resizing()
-    # fun_open_window()
-    # fun_graph_param_prior_plot() # not for ggplot2
-    # plot() or any other plotting
-    # fun_feature_post_plot() if fun_graph_param_prior_plot() has been used # not for ggplot2
-    # fun_close_specif_window()
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS
-    # class.nb: number of class to plot
-    # inches.per.class.nb: number of inches per unit of class.nb. 2 means 2 inches for each boxplot for instance
-    # ini.window.width:initial window width in inches
-    # inch.left.space: left horizontal margin of the figure region (in inches)
-    # inch.right.space: right horizontal margin of the figure region (in inches)
-    # boundarie.space: space between the right and left limits of the plotting region and the plot (0.5 means half a class width)
-    # RETURN
-    # the new window width in inches
-    # EXAMPLES
-    # fun_window_width_resizing(class.nb = 10, inches.per.class.nb = 0.2, ini.window.width = 7, inch.left.space = 1, inch.right.space = 1, boundarie.space = 0.5)
-    # DEBUGGING
-    # class.nb = 10 ; inches.per.class.nb = 0.2 ; ini.window.width = 7 ; inch.left.space = 1 ; inch.right.space = 1 ; boundarie.space = 0.5 # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = class.nb, typeof = "integer", length = 1, double.as.integer.allowed = TRUE, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = inches.per.class.nb, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = ini.window.width, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = inch.left.space, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = inch.right.space, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = boundarie.space, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # end argument checking
-    range.max <- class.nb + boundarie.space # the max range of the future plot
-    range.min <- boundarie.space # the min range of the future plot
-    window.width <- inch.left.space + inch.right.space + inches.per.class.nb * (range.max - range.min)
-    return(window.width)
-}
-
-
-######## fun_open_window() #### Open a GUI or pdf graphic window
-
-
-# Check OK: clear to go Apollo
-fun_open_window <- function(pdf.disp = TRUE, path.fun = "working.dir", pdf.name.file = "graph", width.fun = 7, height.fun = 7, paper = "special", no.pdf.overwrite = TRUE, return.output = FALSE){
-    # AIM:
-    # open a pdf or screen (GUI) graphic window
-    # BEWARE: on Linux, use pdf.disp = TRUE, if (GUI) graphic window is not always available, meaning that X is not installed (clusters for instance). Use X11() in R to test if available
-    # this order can be used:
-    # fun_window_width_resizing()
-    # fun_open_window()
-    # fun_graph_param_prior_plot() # not for ggplot2
-    # plot() or any other plotting
-    # fun_feature_post_plot() if fun_graph_param_prior_plot() has been used # not for ggplot2
-    # fun_close_specif_window()
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS:
-    # pdf.disp: use pdf or not
-    # path.fun: where the pdf is saved. Must not finish by a path separator. Write "working.dir" if working directory is required (default)
-    # pdf.name.file: name of the pdf file containing the graphs (the .pdf extension is added by the function)
-    # width.fun: width of the windows (in inches)
-    # height.fun: height of the windows (in inches)
-    # paper: paper argument of the pdf function (paper format). Only used for pdf(). Either "a4", "letter", "legal", "us", "executive", "a4r", "USr" or "special". If "special", means that width.fun and height.fun specify the paper size
-    # no.pdf.overwrite: existing pdf can be overwritten ? Only used if pdf.disp = TRUE
-    # return.output: return output ? If TRUE but function not assigned, the output list is displayed
-    # RETURN
-    # a list containing:
-    # $pdf.loc: path of the pdf created
-    # $ini.par: initial par() parameters (to reset in a new graph)
-    # $zone.ini: initial window spliting (to reset in a new graph)
-    # EXAMPLES
-    # fun_open_window(pdf.disp = FALSE, path.fun = "C:/Users/Gael/Desktop", pdf.name.file = "graph", width.fun = 7, height.fun = 7, paper = "special", no.pdf.overwrite = TRUE, return.output = TRUE)
-    # DEBUGGING
-    # pdf.disp = TRUE ; path.fun = "C:/Users/Gael/Desktop" ; pdf.name.file = "graphs" ; width.fun = 7 ; height.fun = 7 ; paper = "special" ; no.pdf.overwrite = TRUE ; return.output = TRUE # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = pdf.disp, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = path.fun, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = pdf.name.file, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = width.fun, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = height.fun, mode = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = path.fun, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = paper, options = c("a4", "letter", "legal", "us", "executive", "a4r", "USr", "special", "A4", "LETTER", "LEGAL", "US"), length = 1) ; eval(ee)
-    tempo <- fun_param_check(data =no.pdf.overwrite, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = return.output, class = "logical", length = 1) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # end argument checking
-    if(path.fun == "working.dir"){
-        path.fun <- getwd()
-    }else{
-        if(dir.exists(path.fun) == FALSE){
-            tempo.cat <- paste0("\n\n================\n\nERROR: path.fun ARGUMENT DOES NOT CORRESPOND TO EXISTING DIRECTORY\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if(Sys.info()["sysname"] == "Windows"){ # Note that .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
-        tempo <- NULL
-        windows()
-        ini.par <- par(no.readonly = TRUE) # to recover the initial graphical parameters if required (reset)
-        invisible(dev.off()) # close the new window
-    }else if(Sys.info()["sysname"] == "Linux"){
-        if( ! file.exists(paste0(getwd(), "/Rplots.pdf"))){
-            tempo <- suppressWarnings(try(X11(), silent = TRUE))[] # open a X11 window or a pdf. So no need to use again X11(). tempo == NULL if no problem, meaning that the X11 window is opened. If tempo != NULL, a pdf is open here paste0(getwd(), "/Rplots.pdf")
-            ini.par <- par(no.readonly = TRUE) # recover the initial graphical parameters. Works even if X11 is not working as R opens a pdf
-            invisible(dev.off()) # can be used here to close the pdf windows if tempo != NULL and to close the X11 window if tempo == NULL
-        }else{
-            tempo.cat <- paste0("\n\n================\n\nPROBLEM: THIS FUNCTION CANNOT OPEN GUI ON LINUX OR NON MACOS UNIX SYSTEM (X GRAPHIC INTERFACE HAS TO BE SET.\nTO OVERCOME THIS, PLEASE SET pdf.disp ARGUMENT TO TRUE AND RERUN\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }else{
-        tempo <- NULL
-        quartz()
-        ini.par <- par(no.readonly = TRUE) # to recover the initial graphical parameters if required (reset)
-        invisible(dev.off()) # close the new window
-    }
-    zone.ini <- matrix(1, ncol=1) # to recover the initial parameters for next figure region when device region split into several figure regions
-    if(pdf.disp == TRUE){
-        pdf.loc <- paste0(path.fun, "/", pdf.name.file, ".pdf")
-        if(file.exists(pdf.loc) == TRUE & no.pdf.overwrite == TRUE){
-            tempo.cat <- paste0("\n\n================\n\nERROR: pdf.loc FILE ALREADY EXISTS AND CANNOT BE OVERWRITTEN DUE TO no.pdf.overwrite ARGUMENT SET TO TRUE\n\n================\n\n")
-            stop(tempo.cat)
-        }else{
-            pdf(width = width.fun, height = height.fun, file=pdf.loc, paper = paper)
-        }
-    }else if(pdf.disp == FALSE){
-        pdf.loc <- NULL
-        if(Sys.info()["sysname"] == "Windows"){ # .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
-            windows(width = width.fun, height = height.fun, rescale="fixed")
-        }else if(Sys.info()["sysname"] == "Linux"){
-            if( ! is.null(tempo)){
-                stop("PROBLEM: THIS FUNCTION CANNOT OPEN GUI ON LINUX OR NON MACOS UNIX SYSTEM (X GRAPHIC INTERFACE HAS TO BE SET.\nTO OVERCOME THIS, PLEASE SET pdf.disp ARGUMENT TO TRUE AND RERUN")
-            }else{
-                X11(width = width.fun, height = height.fun)
-            }
-        }else{
-            quartz(width = width.fun, height = height.fun)
-        }
-    }
-    if(return.output == TRUE){
-        output <- list(pdf.loc = pdf.loc, ini.par = ini.par, zone.ini = zone.ini)
-        return(output)
-    }
-}
-
-
-######## fun_graph_param_prior_plot() #### Graph param before plotting
-
-
-# Check OK: clear to go Apollo
-fun_graph_param_prior_plot <- function(param.reinitial = FALSE, xlog.scale = FALSE, ylog.scale = FALSE, remove.label = TRUE, remove.x.axis = TRUE, remove.y.axis = TRUE, std.x.range = TRUE, std.y.range = TRUE, down.space = 1, left.space = 1, up.space = 1, right.space = 1, orient = 1, dist.legend = 3.5, tick.length = 0.5, box.type = "n", amplif.label = 1, amplif.axis = 1, display.extend = FALSE, return.par = FALSE){
-    # AIM:
-    # very convenient to erase the axes for post plot axis redrawing using fun_feature_post_plot()
-    # reinitialize and set the graphic parameters before plotting
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS
-    # param.reinitial: reinitialize graphic parameters before applying the new ones, as defined by the other arguments? Either TRUE or FALSE
-    # xlog.scale: Log scale for the x-axis? Either TRUE or FALSE. If TRUE, erases the x-axis, except legend, for further drawing by fun_feature_post_plot()(xlog argument of par())
-    # ylog.scale: Log scale for the y-axis? Either TRUE or FALSE. If TRUE, erases the y-axis, except legend, for further drawing by fun_feature_post_plot()(ylog argument of par())
-    # remove.label: remove labels (axis legend) of the two axes? Either TRUE or FALSE (ann argument of par())
-    # remove.x.axis: remove x-axis except legend? Either TRUE or FALSE (control the xaxt argument of par()). Automately set to TRUE if xlog.scale == TRUE
-    # remove.y.axis: remove y-axis except legend? Either TRUE or FALSE (control the yaxt argument of par()). Automately set to TRUE if ylog.scale == TRUE
-    # std.x.range: standard range on the x-axis? TRUE (no range extend) or FALSE (4% range extend). Controls xaxs argument of par() (TRUE is xaxs = "i", FALSE is xaxs = "r")
-    # std.y.range: standard range on the y-axis? TRUE (no range extend) or FALSE (4% range extend). Controls yaxs argument of par() (TRUE is yaxs = "i", FALSE is yaxs = "r")
-    # down.space: lower vertical margin (in inches, mai argument of par())
-    # left.space: left horizontal margin (in inches, mai argument of par())
-    # up.space: upper vertical margin between plot region and grapical window (in inches, mai argument of par())
-    # right.space: right horizontal margin (in inches, mai argument of par())
-    # orient: scale number orientation (las argument of par()). 0, always parallel to the axis; 1, always horizontal; 2, always perpendicular to the axis; 3, always vertical
-    # dist.legend: numeric value that moves axis legends away in inches (first number of mgp argument of par() but in inches thus / 0.2)
-    # tick.length: length of the ticks (1 means complete the distance between the plot region and the axis numbers, 0.5 means half the length, etc. 0 means no tick
-    # box.type: bty argument of par(). Either "o", "l", "7", "c", "u", "]", the resulting box resembles the corresponding upper case letter. A value of "n" suppresses the box
-    # amplif.label: increase or decrease the size of the text in legends
-    # amplif.axis: increase or decrease the size of the scale numbers in axis
-    # display.extend: extend display beyond plotting region? Either TRUE or FALSE (xpd argument of par() without NA)
-    # return.par: return graphic parameter modification?
-    # RETURN
-    # return graphic parameter modification
-    # EXAMPLES
-    # fun_graph_param_prior_plot(param.reinitial = FALSE, xlog.scale = FALSE, ylog.scale = FALSE, remove.label = TRUE, remove.x.axis = TRUE, remove.y.axis = TRUE, down.space = 1, left.space = 1, up.space = 1, right.space = 1, orient = 1, dist.legend = 4.5, tick.length = 0.5, box.type = "n", amplif.label = 1, amplif.axis = 1, display.extend = FALSE, return.par = FALSE)
-    # DEBUGGING
-    # param.reinitial = FALSE ; xlog.scale = FALSE ; ylog.scale = FALSE ; remove.label = TRUE ; remove.x.axis = TRUE ; remove.y.axis = TRUE ; down.space = 1 ; left.space = 1 ; up.space = 1 ; right.space = 1 ; orient = 1 ; dist.legend = 4.5 ; tick.length = 0.5 ; box.type = "n" ; amplif.label = 1 ; amplif.axis = 1 ; display.extend = FALSE ; return.par = FALSE # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = param.reinitial, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = xlog.scale, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = ylog.scale, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = remove.label, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = remove.x.axis, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = remove.y.axis, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = std.x.range, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = std.y.range, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = down.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = left.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = up.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = right.space, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = orient, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = dist.legend, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = tick.length, class = "numeric", length = 1, prop = TRUE) ; eval(ee)
-    tempo <- fun_param_check(data = box.type, options = c("o", "l", "7", "c", "u", "]", "n"), length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = amplif.label, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = amplif.axis, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = display.extend, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = return.par, class = "logical", length = 1) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # end argument checking
-    if(param.reinitial == TRUE){
-        if( ! all(names(dev.cur()) == "null device")){
-            active.wind.nb <- dev.cur()
-        }else{
-            active.wind.nb <- 0
-        }
-        if(Sys.info()["sysname"] == "Windows"){ # Note that .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
-            windows()
-        }else if(Sys.info()["sysname"] == "Linux"){
-            if( ! file.exists(paste0(getwd(), "/Rplots.pdf"))){
-                tempo <- suppressWarnings(try(X11(), silent = TRUE))[] # open a X11 window or a pdf. So no need to use again X11(). tempo == NULL if no problem, meaning that the X11 window is opened. If tempo != NULL, a pdf is open here paste0(getwd(), "/Rplots.pdf")
-            }else{
-                tempo.cat <- paste0("\n\n================\n\nPROBLEM: THIS FUNCTION CANNOT OPEN GUI ON LINUX OR NON MACOS UNIX SYSTEM (X GRAPHIC INTERFACE HAS TO BE SET.\nTO OVERCOME THIS, PLEASE SET pdf.disp ARGUMENT TO TRUE AND RERUN\n\n================\n\n")
-                stop(tempo.cat)
-            }
-        }else{ # macOS
-            quartz()
-        }
-        ini.par <- par(no.readonly = TRUE) # to recover the initial graphical parameters if required (reset)
-        invisible(dev.off()) # close the new window
-        if( ! all(names(dev.cur()) == "null device")){
-            dev.set(active.wind.nb) # go back to the active windows if exists
-            par(ini.par) # apply the initial par to current window
-        }
-    }
-    if(remove.x.axis == TRUE){
-        par(xaxt = "n") # suppress the y-axis label
-    }else{
-        par(xaxt = "s")
-    }
-    if(remove.y.axis == TRUE){
-        par(yaxt = "n") # suppress the y-axis label
-    }else{
-        par(yaxt = "s")
-    }
-    if(std.x.range == TRUE){
-        par(xaxs = "i")
-    }else{
-        par(xaxs = "r")
-    }
-    if(std.y.range == TRUE){
-        par(yaxs = "i")
-    }else{
-        par(yaxs = "r")
-    }
-    par(mai = c(down.space, left.space, up.space, right.space), ann = ! remove.label, las = orient, mgp = c(dist.legend/0.2, 1, 0), xpd = display.extend, bty= box.type, cex.lab = amplif.label, cex.axis = amplif.axis)
-    par(tcl = -par()$mgp[2] * tick.length) # tcl gives the length of the ticks as proportion of line text, knowing that mgp is in text lines. So the main ticks are a 0.5 of the distance of the axis numbers by default. The sign provides the side of the tick (negative for outside of the plot region)
-    if(xlog.scale == TRUE){
-        par(xaxt = "n", xlog = TRUE) # suppress the x-axis label
-    }else{
-        par(xlog = FALSE)
-    }
-    if(ylog.scale == TRUE){
-        par(yaxt = "n", ylog = TRUE) # suppress the y-axis label
-    }else{
-        par(ylog = FALSE)
-    }
-    if(return.par == TRUE){
-        tempo.par <- par()
-        return(tempo.par)
-    }
-}
-
-
-######## fun_feature_post_plot() #### Graph param after plotting
-
-
-# Check OK: clear to go Apollo
-fun_feature_post_plot <- function(x.side = 0, x.log.scale = FALSE, x.categ = NULL, x.categ.pos = NULL, x.lab = "", x.axis.magnific = 1.5, x.label.magnific = 1.5, x.dist.legend = 0.5, x.nb.inter.tick = 1, y.side = 0, y.log.scale = FALSE, y.categ = NULL, y.categ.pos = NULL, y.lab = "", y.axis.magnific = 1.5, y.label.magnific = 1.5, y.dist.legend = 0.5, y.nb.inter.tick = 1, text.angle = 90, tick.length = 0.5, sec.tick.length = 0.3, bg.color = NULL, grid.lwd = NULL, grid.col = "white", corner.text = "", magnific = 1.5, magnific.corner.text = 1, just.label.add = FALSE, par.reset = FALSE, custom.par = NULL){
-    # AIM:
-    # redesign axis. If x.side = 0, y.side = 0, the function just adds text at topright of the graph and reset par() for next graphics and provides outputs (see below)
-    # provide also positions for legend or additional text on the graph
-    # use fun_graph_param_prior_plot() before this function for initial inactivation of the axis drawings
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # fun_open_window() to reinitialize graph parameters if par.reset = TRUE and custom.par = NULL
-    # ARGUMENTS
-    # x.side: axis at the bottom (1) or top (3) of the region figure. Write 0 for no change
-    # x.log.scale: Log scale for the x-axis? Either TRUE or FALSE
-    # x.categ: character vector representing the classes (levels()) to specify when the x-axis is qualititative(stripchart, boxplot)
-    # x.categ.pos: position of the classes names (numeric vector of identical length than x.categ). If left NULL, this will be 1:length(levels())
-    # x.lab: label of the x-axis. If x.side == 0 and x.lab != "", then x.lab is printed
-    # x.axis.magnific: increase or decrease the value to increase or decrease the size of the x axis numbers. Also control the size of displayed categories
-    # x.label.magnific: increase or decrease the value to increase or decrease the size of the x axis legend
-    # x.dist.legend: increase the number to move x-axis legends away in inches (first number of mgp argument of par() but in inches)
-    # x.nb.inter.tick: number of secondary ticks between main ticks on x-axis (only if not log scale). 0 means no secondary ticks
-    # y.side: axis at the left (2) or right (4) of the region figure. Write 0 for no change
-    # y.log.scale: Log scale for the y-axis? Either TRUE or FALSE
-    # y.categ: classes (levels()) to specify when the y-axis is qualititative(stripchart, boxplot)
-    # y.categ.pos: position of the classes names (numeric vector of identical length than y.categ). If left NULL, this will be 1:length(levels())
-    # y.lab: label of the y-axis. If y.side == 0 and y.lab != "", then y.lab is printed
-    # y.axis.magnific: increase or decrease the value to increase or decrease the size of the y axis numbers. Also control the size of displayed categories
-    # y.label.magnific: increase or decrease the value to increase or decrease the size of the y axis legend
-    # y.dist.legend: increase the number to move y-axis legends away in inches (first number of mgp argument of par() but in inches)
-    # y.nb.inter.tick: number of secondary ticks between main ticks on y-axis (only if not log scale). 0 means non secondary ticks
-    # text.angle: angle of the text when axis is qualitative
-    # tick.length: length of the main ticks (1 means complete the distance between the plot region and the axis numbers, 0.5 means half the length, etc., 0 for no ticks)
-    # sec.tick.length: length of the secondary ticks (1 means complete the distance between the plot region and the axis numbers, 0.5 means half the length, etc., 0 for no ticks)
-    # bg.color: background color of the plot region. NULL for no color. BEWARE: cover/hide an existing plot !
-    # grid.lwd: if non NULL, activate the grid line (specify the line width)
-    # grid.col: grid line color (only if grid.lwd non NULL)
-    # corner.text: text to add at the top right corner of the window
-    # magnific.corner.text: increase or decrease the size of the text
-    # par.reset: to reset all the graphics parameters. BEWARE: TRUE can generate display problems, mainly in graphic devices with multiple figure regions
-    # just.label.add: just add axis labels (legend)? Either TRUE or FALSE. If TRUE, at least (x.side == 0 & x.lab != "") or (y.side == 0 & y.lab != "") must be set to display the corresponding x.lab or y.lab
-    # custom.par: list that provides the parameters that reset all the graphics parameters. BEWARE: if NULL and par.reset == TRUE, the default par() parameters are used
-    # RETURN
-    # a list containing: 
-    # $x.mid.left.fig.region: middle of the left margin of the figure region, in coordinates of the x-axis
-    # $x.left.fig.region: left side of the left margin, in coordinates of the x-axis
-    # $x.mid.right.fig.region: middle of the right margin of the figure region, in coordinates of the x-axis
-    # $x.right.fig.region: right side of the right margin, in coordinates of the x-axis
-    # $x.left.plot.region: left side of the plot region, in coordinates of the x-axis
-    # $x.right.plot.region: right side of the plot region, in coordinates of the x-axis
-    # $x.mid.plot.region: middle of the plot region, in coordinates of the x-axis
-    # $y.mid.bottom.fig.region: middle of the bottom margin of the figure region, in coordinates of the y-axis
-    # $y.bottom.fig.region: bottom of the bottom margin of the figure region, in coordinates of the y-axis
-    # $y.mid.top.fig.region: middle of the top margin of the figure region, in coordinates of the y-axis
-    # $y.top.fig.region: top of the top margin of the figure region, in coordinates of the y-axis
-    # $y.top.plot.region: top of the plot region, in coordinates of the y-axis
-    # $y.bottom.plot.region: bottom of the plot region, in coordinates of the y-axis
-    # $y.mid.plot.region: middle of the plot region, in coordinates of the y-axis
-    # $text: warning text
-    # EXAMPLES
-    # Example of log axis with log y-axis and unmodified x-axis:
-    # prior.par <- fun_graph_param_prior_plot(param.reinitial = TRUE, xlog.scale = FALSE, ylog.scale = TRUE, remove.label = TRUE, remove.x.axis = FALSE, remove.y.axis = TRUE, down.space = 1, left.space = 1, up.space = 1, right.space = 1, orient = 1, dist.legend = 0.5, tick.length = 0.5, box.type = "n", amplif.label = 1, amplif.axis = 1, display.extend = FALSE, return.par = TRUE) ; plot(1:100, log = "y") ; fun_feature_post_plot(y.side = 2, y.log.scale = prior.par$ylog, x.lab = "Values", y.lab = "TEST", y.axis.magnific = 1.25, y.label.magnific = 1.5, y.dist.legend = 0.7, just.label.add = ! prior.par$ann)
-    # Example of log axis with redrawn x-axis and y-axis:
-    # prior.par <- fun_graph_param_prior_plot(param.reinitial = TRUE) ; plot(1:100) ; fun_feature_post_plot(x.side = 1, x.lab = "Values", y.side = 2, y.lab = "TEST", y.axis.magnific = 1, y.label.magnific = 2, y.dist.legend = 0.6)
-    # DEBUGGING
-    # x.side = 0 ; x.log.scale = FALSE ; x.categ = NULL ; x.categ.pos = NULL ; x.lab = "" ; x.axis.magnific = 1.5 ; x.label.magnific = 1.5 ; x.dist.legend = 1 ; x.nb.inter.tick = 1 ; y.side = 0 ; y.log.scale = FALSE ; y.categ = NULL ; y.categ.pos = NULL ; y.lab = "" ; y.axis.magnific = 1.5 ; y.label.magnific = 1.5 ; y.dist.legend = 0.7 ; y.nb.inter.tick = 1 ; text.angle = 90 ; tick.length = 0.5 ; sec.tick.length = 0.3 ; bg.color = NULL ; grid.lwd = NULL ; grid.col = "white" ; corner.text = "" ; magnific.corner.text = 1 ; just.label.add = FALSE ; par.reset = FALSE ; custom.par = NULL # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if(length(find("fun_open_window", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_open_window() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = x.side, options = c(0, 1, 3), length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = x.log.scale, class = "logical", length = 1) ; eval(ee)
-    if( ! is.null(x.categ)){
-        tempo <- fun_param_check(data = x.categ, class = "character", na.contain = TRUE) ; eval(ee)
-    }
-    if( ! is.null(x.categ.pos)){
-        tempo <- fun_param_check(data = x.categ.pos, class = "numeric") ; eval(ee)
-    }
-    tempo <- fun_param_check(data = x.lab, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = x.axis.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = x.label.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = x.dist.legend, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = x.nb.inter.tick, typeof = "integer", length = 1, double.as.integer.allowed = TRUE) ; eval(ee)
-    tempo <- fun_param_check(data = y.side, options = c(0, 2, 4), length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = y.log.scale, class = "logical", length = 1) ; eval(ee)
-    if( ! is.null(y.categ)){
-        tempo <- fun_param_check(data = y.categ, class = "character", na.contain = TRUE) ; eval(ee)
-    }
-    if( ! is.null(y.categ.pos)){
-        tempo <- fun_param_check(data = y.categ.pos, class = "numeric") ; eval(ee)
-    }
-    tempo <- fun_param_check(data = y.lab, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = y.axis.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = y.label.magnific, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = y.dist.legend, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = y.nb.inter.tick, typeof = "integer", length = 1, double.as.integer.allowed = TRUE) ; eval(ee)
-    tempo <- fun_param_check(data = text.angle, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = tick.length, class = "numeric", length = 1, prop = TRUE) ; eval(ee)
-    tempo <- fun_param_check(data = sec.tick.length, class = "numeric", length = 1, prop = TRUE) ; eval(ee)
-    if( ! is.null(bg.color)){
-        tempo <- fun_param_check(data = bg.color, class = "character", length = 1) ; eval(ee)
-        if( ! (bg.color %in% colors() | grepl(pattern = "^#", bg.color))){ # check color
-            tempo.cat <- paste0("\n\n================\n\nERROR: bg.color ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # OR A COLOR NAME GIVEN BY colors()\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    if( ! is.null(grid.lwd)){
-        tempo <- fun_param_check(data = grid.lwd, class = "numeric", neg.values = FALSE) ; eval(ee)
-    }
-    if( ! is.null(grid.col)){
-        tempo <- fun_param_check(data = grid.col, class = "character", length = 1) ; eval(ee)
-        if( ! (grid.col %in% colors() | grepl(pattern = "^#", grid.col))){ # check color
-            tempo.cat <- paste0("\n\n================\n\nERROR: grid.col ARGUMENT MUST BE A HEXADECIMAL COLOR VECTOR STARTING BY # OR A COLOR NAME GIVEN BY colors()\n\n================\n\n")
-            stop(tempo.cat)
-        }
-    }
-    tempo <- fun_param_check(data = corner.text, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = magnific.corner.text, class = "numeric", length = 1, neg.values = FALSE) ; eval(ee)
-    tempo <- fun_param_check(data = just.label.add, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = par.reset, class = "logical", length = 1) ; eval(ee)
-    if( ! is.null(custom.par)){
-        tempo <- fun_param_check(data = custom.par, typeof = "list", length = 1) ; eval(ee)
-    }
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # end argument checking
-    text <- NULL
-    par(tcl = -par()$mgp[2] * tick.length)
-    if(x.log.scale == TRUE){
-        grid.coord.x <- c(10^par("usr")[1], 10^par("usr")[2])
-    }else{
-        grid.coord.x <- c(par("usr")[1], par("usr")[2])
-    }
-    if(y.log.scale == TRUE){
-        grid.coord.y <- c(10^par("usr")[3], 10^par("usr")[4])
-    }else{
-        grid.coord.y <- c(par("usr")[3], par("usr")[4])
-    }
-    if( ! is.null(bg.color)){
-        rect(grid.coord.x[1], grid.coord.y[1], grid.coord.x[2], grid.coord.y[2], col = bg.color, border = NA)
-    }
-    if( ! is.null(grid.lwd)){
-        grid(nx = NA, ny = NULL, col = grid.col, lty = 1, lwd = grid.lwd)
-    }
-    if(x.log.scale == TRUE){
-        x.mid.left.fig.region <- 10^(par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1] / 2) # in x coordinates, to position axis labeling at the bottom of the graph (according to x scale)
-        x.left.fig.region <- 10^(par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1]) # in x coordinates
-        x.mid.right.fig.region <- 10^(par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2]) / 2) # in x coordinates, to position axis labeling at the top of the graph (according to x scale)
-        x.right.fig.region <- 10^(par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2])) # in x coordinates
-        x.left.plot.region <- 10^par("usr")[1] # in x coordinates, left of the plot region (according to x scale)
-        x.right.plot.region <- 10^par("usr")[2] # in x coordinates, right of the plot region (according to x scale)
-        x.mid.plot.region <- 10^((par("usr")[2] + par("usr")[1]) / 2) # in x coordinates, right of the plot region (according to x scale)
-    }else{
-        x.mid.left.fig.region <- (par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1] / 2) # in x coordinates, to position axis labeling at the bottom of the graph (according to x scale)
-        x.left.fig.region <- (par("usr")[1] - ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * par("plt")[1]) # in x coordinates
-        x.mid.right.fig.region <- (par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2]) / 2) # in x coordinates, to position axis labeling at the top of the graph (according to x scale)
-        x.right.fig.region <- (par("usr")[2] + ((par("usr")[2] -  par("usr")[1]) / (par("plt")[2] - par("plt")[1])) * (1 - par("plt")[2])) # in x coordinates
-        x.left.plot.region <- par("usr")[1] # in x coordinates, left of the plot region (according to x scale)
-        x.right.plot.region <- par("usr")[2] # in x coordinates, right of the plot region (according to x scale)
-        x.mid.plot.region <- (par("usr")[2] + par("usr")[1]) / 2 # in x coordinates, right of the plot region (according to x scale)
-    }
-    if(y.log.scale == TRUE){
-        y.mid.bottom.fig.region <- 10^(par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3] / 2) # in y coordinates, to position axis labeling at the bottom of the graph (according to y scale). Ex mid.bottom.space
-        y.bottom.fig.region <- 10^(par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3]) # in y coordinates
-        y.mid.top.fig.region <- 10^(par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4]) / 2) # in y coordinates, to position axis labeling at the top of the graph (according to y scale). Ex mid.top.space
-        y.top.fig.region <- 10^(par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4])) # in y coordinates
-        y.top.plot.region <- 10^par("usr")[4] # in y coordinates, top of the plot region (according to y scale)
-        y.bottom.plot.region <- 10^par("usr")[3] # in y coordinates, bottom of the plot region (according to y scale)
-        y.mid.plot.region <- (par("usr")[3] + par("usr")[4]) / 2 # in x coordinates, right of the plot region (according to x scale)
-    }else{
-        y.mid.bottom.fig.region <- (par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3] / 2) # in y coordinates, to position axis labeling at the bottom of the graph (according to y scale). Ex mid.bottom.space
-        y.bottom.fig.region <- (par("usr")[3] - ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * par("plt")[3]) # in y coordinates
-        y.mid.top.fig.region <- (par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4]) / 2) # in y coordinates, to position axis labeling at the top of the graph (according to y scale). Ex mid.top.space
-        y.top.fig.region <- (par("usr")[4] + ((par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3])) * (1 - par("plt")[4])) # in y coordinates
-        y.top.plot.region <- par("usr")[4] # in y coordinates, top of the plot region (according to y scale)
-        y.bottom.plot.region <- par("usr")[3] # in y coordinates, bottom of the plot region (according to y scale)
-        y.mid.plot.region <- 10^((par("usr")[3] + par("usr")[4]) / 2) # in x coordinates, right of the plot region (according to x scale)
-    }
-    if(x.side == 1 | x.side == 3){
-        par(xpd=FALSE, xaxt="s")
-        if(is.null(x.categ) & x.log.scale == TRUE){
-            if(any(par()$xaxp[1:2] == 0)){
-                if(par()$xaxp[1] == 0){
-                    par(xaxp = c(10^-30, par()$xaxp[2:3])) # because log10(par()$xaxp[1] == 0) == -Inf
-                }
-                if(par()$xaxp[2] == 0){
-                    par(xaxp = c(par()$xaxp[1], 10^-30, par()$xaxp[3])) # because log10(par()$xaxp[2] == 0) == -Inf
-                }
-            }
-            axis(side=x.side, at=c(10^par()$usr[1], 10^par()$usr[2]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
-            mtext(side = x.side, text = x.lab, line = x.dist.legend / 0.2, las = 0, cex = x.label.magnific)
-            par(tcl = -par()$mgp[2] * sec.tick.length) # length of the secondary ticks are reduced
-            suppressWarnings(rug(10^outer(c((log10(par("xaxp")[1]) -1):log10(par("xaxp")[2])), log10(1:10), "+"), ticksize = NA, side = x.side)) # ticksize = NA to allow the use of par()$tcl value
-            par(tcl = -par()$mgp[2] * tick.length) # back to main ticks
-            axis(side = x.side, at = c(1e-15, 1e-14, 1e-13, 1e-12, 1e-11, 1e-10, 1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10), labels = expression(10^-15, 10^-14, 10^-13, 10^-12, 10^-11, 10^-10, 10^-9, 10^-8, 10^-7, 10^-6, 10^-5, 10^-4, 10^-3, 10^-2, 10^-1, 10^0, 10^1, 10^2, 10^3, 10^4, 10^5, 10^6, 10^7, 10^8, 10^9, 10^10), lwd = 0, lwd.ticks = 1, cex.axis = x.axis.magnific)
-            x.text <- 10^par("usr")[2]
-        }else if(is.null(x.categ) & x.log.scale == FALSE){
-            axis(side=x.side, at=c(par()$usr[1], par()$usr[2]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
-            axis(side=x.side, at=round(seq(par()$xaxp[1], par()$xaxp[2], length.out=par()$xaxp[3]+1), 2), cex.axis = x.axis.magnific)
-            mtext(side = x.side, text = x.lab, line = x.dist.legend / 0.2, las = 0, cex = x.label.magnific)
-            if(x.nb.inter.tick > 0){
-                inter.tick.unit <- (par("xaxp")[2] - par("xaxp")[1]) / par("xaxp")[3]
-                par(tcl = -par()$mgp[2] * sec.tick.length) # length of the ticks are reduced
-                suppressWarnings(rug(seq(par("xaxp")[1] - 10 * inter.tick.unit, par("xaxp")[2] + 10 * inter.tick.unit, by = inter.tick.unit / (1 + x.nb.inter.tick)), ticksize = NA, x.side)) # ticksize = NA to allow the use of par()$tcl value
-                par(tcl = -par()$mgp[2] * tick.length) # back to main ticks
-            }
-            x.text <- par("usr")[2]
-        }else if(( ! is.null(x.categ)) & x.log.scale == FALSE){
-            if(is.null(x.categ.pos)){
-                x.categ.pos <- 1:length(x.categ)
-            }else if(length(x.categ.pos) != length(x.categ)){
-                stop("\n\nPROBLEM: x.categ.pos MUST BE THE SAME LENGTH AS x.categ\n\n")
-            }
-            par(xpd = TRUE)
-            if(x.side == 1){
-                segments(x0 = x.left.plot.region, x1 = x.right.plot.region, y0 = y.bottom.plot.region, y1 = y.bottom.plot.region) # draw the line of the axis
-                text(x = x.categ.pos, y = y.mid.bottom.fig.region, labels = x.categ, srt = text.angle, cex = x.axis.magnific)
-            }else if(x.side == 3){
-                segments(x0 = x.left.plot.region, x1 = x.right.plot.region, y0 = y.top.plot.region, y1 = y.top.plot.region) # draw the line of the axis
-                text(x = x.categ.pos, y = y.mid.top.fig.region, labels = x.categ, srt = text.angle, cex = x.axis.magnific)
-            }else{
-                stop("\n\nARGUMENT x.side CAN ONLY BE 1 OR 3\n\n")
-            }
-            par(xpd = FALSE)
-            x.text <- par("usr")[2]
-        }else{
-            stop("\n\nPROBLEM WITH THE x.side (", x.side ,") OR x.log.scale (", x.log.scale,") ARGUMENTS\n\n")
-        }
-    }else{
-        x.text <- par("usr")[2]
-    }
-    if(y.side == 2 | y.side == 4){
-        par(xpd=FALSE, yaxt="s")
-        if(is.null(y.categ) & y.log.scale == TRUE){
-            if(any(par()$yaxp[1:2] == 0)){
-                if(par()$yaxp[1] == 0){
-                    par(yaxp = c(10^-30, par()$yaxp[2:3])) # because log10(par()$yaxp[1] == 0) == -Inf
-                }
-                if(par()$yaxp[2] == 0){
-                    par(yaxp = c(par()$yaxp[1], 10^-30, par()$yaxp[3])) # because log10(par()$yaxp[2] == 0) == -Inf
-                }
-            }
-            axis(side=y.side, at=c(10^par()$usr[3], 10^par()$usr[4]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
-            par(tcl = -par()$mgp[2] * sec.tick.length) # length of the ticks are reduced
-            suppressWarnings(rug(10^outer(c((log10(par("yaxp")[1])-1):log10(par("yaxp")[2])), log10(1:10), "+"), ticksize = NA, side = y.side)) # ticksize = NA to allow the use of par()$tcl value
-            par(tcl = -par()$mgp[2] * tick.length) # back to main tick length
-            axis(side = y.side, at = c(1e-15, 1e-14, 1e-13, 1e-12, 1e-11, 1e-10, 1e-9, 1e-8, 1e-7, 1e-6, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10), labels = expression(10^-15, 10^-14, 10^-13, 10^-12, 10^-11, 10^-10, 10^-9, 10^-8, 10^-7, 10^-6, 10^-5, 10^-4, 10^-3, 10^-2, 10^-1, 10^0, 10^1, 10^2, 10^3, 10^4, 10^5, 10^6, 10^7, 10^8, 10^9, 10^10), lwd = 0, lwd.ticks = 1, cex.axis = y.axis.magnific)
-            y.text <- 10^(par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
-            mtext(side = y.side, text = y.lab, line = y.dist.legend / 0.2, las = 0, cex = y.label.magnific)
-        }else if(is.null(y.categ) & y.log.scale == FALSE){
-            axis(side=y.side, at=c(par()$usr[3], par()$usr[4]), labels=rep("", 2), lwd=1, lwd.ticks=0) # draw the axis line
-            axis(side=y.side, at=round(seq(par()$yaxp[1], par()$yaxp[2], length.out=par()$yaxp[3]+1), 2), cex.axis = y.axis.magnific)
-            mtext(side = y.side, text = y.lab, line = y.dist.legend / 0.2, las = 0, cex = y.label.magnific)
-            if(y.nb.inter.tick > 0){
-                inter.tick.unit <- (par("yaxp")[2] - par("yaxp")[1]) / par("yaxp")[3]
-                par(tcl = -par()$mgp[2] * sec.tick.length) # length of the ticks are reduced
-                suppressWarnings(rug(seq(par("yaxp")[1] - 10 * inter.tick.unit, par("yaxp")[2] + 10 * inter.tick.unit, by =  inter.tick.unit / (1 + y.nb.inter.tick)), ticksize = NA, side=y.side)) # ticksize = NA to allow the use of par()$tcl value
-                par(tcl = -par()$mgp[2] * tick.length) # back to main tick length
-            }
-            y.text <- (par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
-        }else if(( ! is.null(y.categ)) & y.log.scale == FALSE){
-            if(is.null(y.categ.pos)){
-                y.categ.pos <- 1:length(y.categ)
-            }else if(length(y.categ.pos) != length(y.categ)){
-                stop("\n\nPROBLEM: y.categ.pos MUST BE THE SAME LENGTH AS y.categ\n\n")
-            }
-            axis(side = y.side, at = y.categ.pos, labels = rep("", length(y.categ)), lwd=0, lwd.ticks=1) # draw the line of the axis
-            par(xpd = TRUE)
-            if(y.side == 2){
-                text(x = x.mid.left.fig.region, y = y.categ.pos, labels = y.categ, srt = text.angle, cex = y.axis.magnific)
-            }else if(y.side == 4){
-                text(x = x.mid.right.fig.region, y = y.categ.pos, labels = y.categ, srt = text.angle, cex = y.axis.magnific)
-            }else{
-                stop("\n\nARGUMENT y.side CAN ONLY BE 2 OR 4\n\n")
-            }
-            par(xpd = FALSE)
-            y.text <- (par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
-        }else{
-            stop("\n\nPROBLEM WITH THE y.side (", y.side ,") OR y.log.scale (", y.log.scale,") ARGUMENTS\n\n")
-        }
-    }else{
-        y.text <- (par("usr")[4] + (par("usr")[4] -  par("usr")[3]) / (par("plt")[4] - par("plt")[3]) * (1 - par("plt")[4]))
-    }
-    par(xpd=NA)
-    text(x = x.mid.right.fig.region, y = y.text, corner.text, adj=c(1, 1.1), cex = magnific.corner.text) # text at the topright corner. Replace x.right.fig.region by x.text if text at the right edge of the plot region
-    if(just.label.add == TRUE & x.side == 0 & x.lab != ""){
-        text(x = x.mid.plot.region, y = y.mid.bottom.fig.region, x.lab, adj=c(0.5, 0.5), cex = x.label.magnific) # x label
-    }
-    if(just.label.add == TRUE & y.side == 0 & y.lab != ""){
-        text(x = y.mid.plot.region, y = x.mid.left.fig.region, y.lab, adj=c(0.5, 0.5), cex = y.label.magnific) # x label
-    }
-    par(xpd=FALSE)
-    if(par.reset == TRUE){
-        tempo.par <- fun_open_window(pdf.disp = FALSE, return.output = TRUE)
-        invisible(dev.off()) # close the new window
-        if( ! is.null(custom.par)){
-            if( ! names(custom.par) %in% names(tempo.par$ini.par)){
-                tempo.cat <- paste0("\n\n================\n\nERROR: custom.par ARGUMENT SHOULD HAVE THE NAMES OF THE COMPARTMENT LIST COMING FROM THE par() LIST\n\n================\n\n")
-                stop(tempo.cat)
-            }
-            par(custom.par)
-            text <- c(text, "\nGRAPH PARAMETERS SET TO VALUES DEFINED BY custom.par ARGUMENT\n")
-        }else{
-            par(tempo.par$ini.par)
-            text <- c(text, "\nGRAPH PARAMETERS RESET TO par() DEFAULT VALUES\n")
-        }
-    }
-    output <- list(x.mid.left.fig.region = x.mid.left.fig.region, x.left.fig.region = x.left.fig.region, x.mid.right.fig.region = x.mid.right.fig.region, x.right.fig.region = x.right.fig.region, x.left.plot.region = x.left.plot.region, x.right.plot.region = x.right.plot.region, x.mid.plot.region = x.mid.plot.region, y.mid.bottom.fig.region = y.mid.bottom.fig.region, y.bottom.fig.region = y.bottom.fig.region, y.mid.top.fig.region = y.mid.top.fig.region, y.top.fig.region = y.top.fig.region, y.top.plot.region = y.top.plot.region, y.bottom.plot.region = y.bottom.plot.region, y.mid.plot.region = y.mid.plot.region, text = text)
-    return(output)
-}
-
-
-######## fun_close_specif_window() #### Closing specific graphic windows
-
-
-# Check OK: clear to go Apollo
-fun_close_specif_window <- function(kind = "pdf", return.text = FALSE){
-    # AIM:
-    # close only specific graphic windows (devices)
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS:
-    # kind: vector, among c("windows", "quartz", "x11", "X11", "pdf", "bmp", "png", "tiff"), indicating the kind of graphic windows (devices) to close. BEWARE: either "windows", "quartz", "x11" or "X11" means that all the X11 GUI graphics devices will be closed, whatever the OS used
-    # return.text: print text regarding the kind parameter and the devices that were finally closed?
-    # RETURN
-    # text regarding the kind parameter and the devices that were finally closed
-    # EXAMPLES
-    # windows() ; windows() ; pdf() ; dev.list() ; fun_close_specif_window(kind = c("pdf", "x11"), return.text = TRUE) ; dev.list()
-    # DEBUGGING
-    # kind = c("windows", "pdf") ; return.text = FALSE # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = kind, options = c("windows", "quartz", "x11", "X11", "pdf", "bmp", "png", "tiff")) ; eval(ee)
-    tempo <- fun_param_check(data = return.text, class = "logical", length = 1) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # end argument checking
-    text <- paste0("THE REQUIRED KIND OF GRAPHIC DEVICES TO CLOSE ARE ", paste(kind, collapse = " "))
-    if(Sys.info()["sysname"] == "Windows"){ # Note that .Platform$OS.type() only says "unix" for macOS and Linux and "Windows" for Windows
-        if(any(kind %in% c("windows", "quartz", "x11", "X11"))){
-            tempo <- kind %in% c("windows", "quartz", "x11", "X11")
-            kind[tempo] <- "windows" #  # term are replaced by what is displayed when using a <- dev.list() ; names(a)
-        }
-    }else if(Sys.info()["sysname"] == "Linux"){
-        if(any(kind %in% c("windows", "quartz", "x11", "X11"))){
-            tempo.device <- suppressWarnings(try(X11(), silent = TRUE))[] # open a X11 window to try to recover the X11 system used
-            if( ! is.null(tempo.device)){
-                text <- paste0(text, "\nCANNOT CLOSE GUI GRAPHIC DEVICES AS REQUIRED BECAUSE THIS LINUX SYSTEM DOES NOT HAVE IT")
-            }else{
-                tempo <- kind %in% c("windows", "quartz", "x11", "X11")
-                kind[tempo] <- names(dev.list()[length(dev.list())]) #  # term are replaced by what is displayed when using a <- dev.list() ; names(a)
-                invisible(dev.off()) # close the X11 opened by tempo
-            }
-        }
-    }else{ # for macOS
-        if(any(kind %in% c("windows", "quartz", "x11", "X11"))){
-            tempo <- kind %in% c("windows", "quartz", "x11", "X11")
-            kind[tempo] <- "quartz" # term are replaced by what is displayed when using a <- dev.list() ; names(a)
-        }
-    }
-    kind <- unique(kind)
-    if(length(dev.list()) != 0){
-        for(i in length(names(dev.list())):1){
-            if(names(dev.list())[i] %in% kind){
-                text <- paste0(text, "\n", names(dev.list())[i], " DEVICE NUMBER ", dev.list()[i], " HAS BEEN CLOSED")
-                invisible(dev.off(dev.list()[i]))
-            }
-        }
-    }
-    if(return.text == TRUE){
-        return(text)
-    }
-}
-
-
-################ Exporting results (text & tables)
-
-
-######## fun_export_data() #### Print string or data object into output file
-
-
-# Check OK: clear to go Apollo
-fun_export_data <- function(data, output ="results.txt", path = "C:/Users/Gael/Desktop", no.overwrite = TRUE, rownames.kept = FALSE, vector.cat = FALSE, sep = 2){
-    # AIM:
-    # print a character string or a data object into an output file
-    # REQUIRED FUNCTIONS
-    # fun_param_check()
-    # ARGUMENTS
-    # data: object to print in the output file
-    # output: name of the output file
-    # path: location of the output file
-    # no.overwrite: (logical) if output file already exists, defines if the printing is appended (default TRUE) or if the output file content is erased before printing (FALSE)
-    # rownames.kept: (logical) defines whether row names have to be removed or not in small tables (less than length.rows rows)
-    # vector.cat (logical). If TRUE print a vector of length > 1 using cat() instead of capture.output(). Otherwise (default FALSE) the opposite
-    # sep: number of separating lines after printed data (must be integer)
-    # RETURN
-    # nothing
-    # EXAMPLES
-    # fun_export_data(data = 1:3, output = "results.txt", path = "C:/Users/Gael/Desktop", no.overwrite = TRUE, rownames.kept = FALSE, vector.cat = FALSE, sep = 2)
-    # DEBUGGING
-    # data = 1:3 ; output = "results.txt" ; path = "C:/Users/Gael/Desktop" ; no.overwrite = TRUE ; rownames.kept = FALSE ; vector.cat = FALSE ; sep = 2 # for function debugging
-    # required function checking
-    if(length(find("fun_param_check", mode = "function")) == 0){
-        tempo.cat <- paste0("\n\n================\n\nERROR: REQUIRED fun_param_check() FUNCTION IS MISSING IN THE R ENVIRONMENT\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end required function checking
-    # argument checking
-    arg.check <- NULL # for function debbuging
-    checked.arg.names <- NULL # for function debbuging
-    ee <- expression(arg.check <- c(arg.check, tempo$problem) , checked.arg.names <- c(checked.arg.names, tempo$param.name))
-    tempo <- fun_param_check(data = output, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = path, class = "character", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = no.overwrite, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = rownames.kept, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = vector.cat, class = "logical", length = 1) ; eval(ee)
-    tempo <- fun_param_check(data = sep, typeof = "integer", length = 1, double.as.integer.allowed = TRUE) ; eval(ee)
-    if(any(arg.check) == TRUE){
-        stop()
-    }
-    # source("C:/Users/Gael/Documents/Sources/debugging_tools_for_r_dev-v1.2/r_debugging_tools-v1.2.R") ; eval(parse(text = str_basic_arg_check_dev)) ; eval(parse(text = str_arg_check_with_fun_param_check_dev)) # activate this line and use the function to check arguments status and if they have been checked using fun_param_check()
-    # the 4 next lines are just to know how to detect a missing argument. Important here because if data is not provided, print the code of the data function
-    arg.user.list <- as.list(match.call(expand.dots=FALSE))[-1] # recover all the arguments provided by the function user (excluding the argument with defaults values not provided by the user. Thus, it is really the list indicated by the user)
-    default.arg.list <- formals(fun = sys.function(sys.parent())) # list of all the arguments of the function with their default values (not the values of the user !). It seems that ls() as first line of the function provide the names of the arguments (empty, called, etc., or not)
-    arg.without.default.value <- sapply(default.arg.list, is.symbol) & sapply(sapply(default.arg.list, as.character), identical, "") # logical to detect argument without default values (these are typeof "symbol" and class "name" and empty character
-    if( ! all(names(default.arg.list)[arg.without.default.value] %in% names(arg.user.list))){ # test that the arguments with no null values are provided by the user
-        tempo.cat <- paste0("\n\n================\n\nERROR: VALUE REQUIRED FOR THESE ARGUMENTS WITH NO DEFAULTS VALUES: ", paste(names(default.arg.list)[arg.without.default.value][ ! names(default.arg.list)[arg.without.default.value] %in% names(arg.user.list)], collapse = " "), "\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if(output == ""){
-        tempo.cat <- paste0("\n\n================\n\nERROR: output ARGUMENT DOES NOT CORRESPOND TO A VALID CHARACTER STRING\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    if(dir.exists(path) == FALSE){
-        tempo.cat <- paste0("\n\n================\n\nERROR: path ARGUMENT DOES NOT CORRESPOND TO EXISTING DIRECTORY\n\n================\n\n")
-        stop(tempo.cat)
-    }
-    # end argument checking
-    if(all(class(data) %in% c("matrix", "data.frame", "table"))){
-        if(rownames.kept == FALSE & all(class(data) == "data.frame") & nrow(data) != 0 & nrow(data) <= 4){ # for data frames with nrows <= 4
-            rownames.output.tables <- ""
-            length.rows <- nrow(data)
-            for(i in 1:length.rows){ # replace the rownames of the first 4 rows by increasing number of spaces (beacause identical row names not allowed in data frames). This method cannot be extended to more rows as the printed data frame is shifted on the right because of "big empty rownames"
-                rownames.output.tables <- c(rownames.output.tables, paste0(rownames.output.tables[i]," ", collapse=""))
-            }
-            row.names(data) <- rownames.output.tables[1:length.rows]
-        }else if(rownames.kept == FALSE & all(class(data) %in% c("matrix", "table"))){
-            rownames(data) <- rep("", nrow(data))  # identical row names allowed in matrices and tables
-        }
-        capture.output(data, file=paste0(path, "/", output), append = no.overwrite)
-    }else if(is.vector(data) & all(class(data) != "list") & (length(data) == 1 | vector.cat == TRUE)){
-        cat(data, file= paste0(path, "/", output), append = no.overwrite)
-    }else{ # other (array, list, factor or vector with vector.cat = FALSE)
-        capture.output(data, file=paste0(path, "/", output), append = no.overwrite)
-    }
-    sep.final <- paste0(rep("\n", sep), collapse = "")
-    write(sep.final, file= paste0(path, "/", output), append = TRUE) # add a sep
-}
-
-
diff --git a/cute_little_functions.docx b/cute_little_functions.docx
deleted file mode 100644
index a57aac26b02b771f4a8ebd7301151b5d757fab3d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 168264
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
Tf8i@KkUkg?&_o2FW&rwMCQceO

diff --git a/examples_alone.txt b/examples_alone.txt
index 625f35b..ff5916a 100644
--- a/examples_alone.txt
+++ b/examples_alone.txt
@@ -1,4 +1,4 @@
-# COMPILATION OF THE EXAMPLES PRESENTS IN cute_little_functions.R
+# COMPILATION OF THE EXAMPLES PRESENTS IN cute_little_R_functions.R
 
 test <- 1:3 ; fun_param_check(data = test, data.name = NULL, print = TRUE, options = NULL, all.options.in.data = FALSE, class = NULL, typeof = NULL, mode = NULL, prop = TRUE, double.as.integer.allowed = FALSE, length = NULL)
 test <- 1:3 ; fun_param_check(data = test, print = TRUE, class = "numeric", typeof = NULL, double.as.integer.allowed = FALSE)
-- 
GitLab