From 4ee854d019813df87d1af9b3ba68d17b286df49f Mon Sep 17 00:00:00 2001
From: gmillot <gael.millot@pasteur.fr>
Date: Thu, 13 Sep 2018 15:14:43 +0200
Subject: [PATCH] v3.0.0 development

---
 README.md                  |    7 +
 cute_little_functions.R    | 3918 ++++++++++++++++++------------------
 cute_little_functions.docx |  Bin 162596 -> 168264 bytes
 examples_alone.txt         |    9 +-
 4 files changed, 1974 insertions(+), 1960 deletions(-)

diff --git a/README.md b/README.md
index 0158257..d6acbd5 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,13 @@ Check for updated versions (more recent release tags) at https://gitlab.pasteur.
 
 #### WHAT'S NEW IN
 
+## v3.0.0
+
+1) function fun_dataframe_flipping() has been renamed fun_dataframe_remodeling()
+
+2) examples and draws added
+
+
 ## v2.0.1
 
 1) functions that use other functions from this toolset now check if these required functions are indeed present in the R environment
diff --git a/cute_little_functions.R b/cute_little_functions.R
index a2d45e2..f73e439 100644
--- a/cute_little_functions.R
+++ b/cute_little_functions.R
@@ -1,6 +1,6 @@
 ################################################################
 ##                                                            ##
-##     CUTE LITTLE FUNCTIONS v2.0.1                           ##
+##     CUTE LITTLE FUNCTIONS v3.0.0                           ##
 ##                                                            ##
 ##     Gael A. Millot                                         ##
 ##                                                            ##
@@ -23,7 +23,7 @@
 ######## fun_list_comp() #### comparison of two lists   16
 
 ################ Object modification    18
-######## fun_dataframe_flipping() #### flipping a data frame to have column name as a qualitative column and vice-versa 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
@@ -51,238 +51,238 @@
 
 # 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)
-}
+    # 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
@@ -290,56 +290,56 @@ return(output)
 
 # Check OK: clear to go Apollo
 fun_object_info <- function(data){
-# AIM:
-# provide info for a single 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)
+    # 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)
 }
 
 
@@ -348,209 +348,210 @@ return(output)
 
 # Check OK: clear to go Apollo
 fun_1D_comp <- function(data1, data2){
-# AIM:
-# compare two 1D dataset (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
-# same elements
-# same element names
-# 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)
+    # 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)
 }
 
 
@@ -559,243 +560,244 @@ return(output)
 
 # Check OK: clear to go Apollo
 fun_2D_comp <- function(data1, data2){
-# AIM:
-# compare two 2D dataset of the same class or not. Check and report in a list if the 2 datasets have:
-# same row names
-# same 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)
+    # 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)
 }
 
 
@@ -804,221 +806,227 @@ return(output)
 
 # 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
-# same names
-# same 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)
+    # 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_flipping() #### flipping a data frame to have column name as a qualitative column and vice-versa
+######## 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_flipping <- 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(a = 1:3, b = c("A", "B", "A")) ; fun_dataframe_flipping(obs)
-# obs <- data.frame(a = 1:3, b = c("A", "B", "A")) ; fun_dataframe_flipping(obs, quanti.col.name = "quanti", quali.col.name = "quali")
-# obs <- data.frame(a = 1:3, b = 4:6) ; fun_dataframe_flipping(obs)
-# 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_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)
 }
 
 
@@ -1027,90 +1035,90 @@ return(output.data)
 
 # 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)
+    # 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)
 }
 
 
@@ -1119,64 +1127,64 @@ return(output)
 
 # Check OK: clear to go Apollo
 fun_rounding <- function(data, dec.nb = 2, after.lead.zero = TRUE){
-# AIM:
-# round a vector of value, 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
-# fun_rounding(data = c(10, 100.001, 333.0001254, 12312.1235), dec.nb = 2, after.lead.zero = FALSE)
-# 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)
+    # 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)
 }
 
 
@@ -1185,36 +1193,36 @@ return(data)
 
 # 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)
+    # 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)
 }
 
 
@@ -1223,117 +1231,117 @@ return(data)
 
 # 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 number 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)
+    # 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)
 }
 
 
@@ -1354,56 +1362,56 @@ return(output)
 
 # 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)
+    # 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)
 }
 
 
@@ -1412,115 +1420,115 @@ return(window.width)
 
 # 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)
-}
+    # 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)
+    }
 }
 
 
@@ -1529,134 +1537,134 @@ return(output)
 
 # 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:
-# reinitialize and set the graphic parameters before plotting
-# very convenient to erase the axes for post plot axis redrawing using fun_feature_post_plot()
-# 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)
-}
+    # 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)
+    }
 }
 
 
@@ -1665,322 +1673,322 @@ return(tempo.par)
 
 # 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)
+    # 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)
 }
 
 
@@ -1989,71 +1997,71 @@ return(output)
 
 # 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)
-}
+    # 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)
+    }
 }
 
 
@@ -2065,80 +2073,80 @@ return(text)
 
 # 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 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
+    # 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
index bb6becf69348134310e704189a7f9c98788b9ab0..a57aac26b02b771f4a8ebd7301151b5d757fab3d 100644
GIT binary patch
delta 161307
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

delta 155567
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%0A*6QXJ^
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
CK1Fu`

diff --git a/examples_alone.txt b/examples_alone.txt
index cf20849..625f35b 100644
--- a/examples_alone.txt
+++ b/examples_alone.txt
@@ -23,9 +23,8 @@ obs1 = list(1:5, LETTERS[1:2]) ; obs2 = list(a = 1:5, b = LETTERS[1:2]) ; fun_li
 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)
 
-obs <- data.frame(a = 1:3, b = c("A", "B", "A")) ; fun_dataframe_flipping(obs)
-obs <- data.frame(a = 1:3, b = c("A", "B", "A")) ; fun_dataframe_flipping(obs, quanti.col.name = "quanti", quali.col.name = "quali")
-obs <- data.frame(a = 1:3, b = 4:6) ; fun_dataframe_flipping(obs)
+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")
 
 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)
@@ -33,8 +32,8 @@ 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)
 
-fun_rounding(data = c(10, 100.001, 333.0001254, 12312.1235), dec.nb = 2, after.lead.zero = FALSE)
-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))
+cat(fun_rounding(data = c("10", "100.001", "333.0001254", "12312.1235"), dec.nb = 2, after.lead.zero = FALSE))
 
 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)
-- 
GitLab