## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5, warning = FALSE, message = FALSE ) ## ----echo=FALSE, out.width="100%", fig.align="center"------------------------- knitr::include_graphics("LOGO2026_FingerPro-EESA.png") ## ----eval=FALSE--------------------------------------------------------------- # install.packages("fingerPro") ## ----------------------------------------------------------------------------- library(fingerPro) ## ----------------------------------------------------------------------------- data <- read_database( system.file("extdata", "example_geochemical_3s_raw.csv", package = "fingerPro") ) ## ----echo=FALSE--------------------------------------------------------------- knitr::kable( head(data), caption = "Preview: example_geochemical_3s_raw.csv", escape = FALSE ) ## ----------------------------------------------------------------------------- box_plot(data) ## ----eval=FALSE--------------------------------------------------------------- # help("unmix") ## ----------------------------------------------------------------------------- box_plot(data, page = 2) ## ----------------------------------------------------------------------------- box_plot(data, page = 3) ## ----------------------------------------------------------------------------- correlation_plot(data) ## ----------------------------------------------------------------------------- LDA_plot(data) ## ----------------------------------------------------------------------------- PCA_plot(data) ## ----results='hide'----------------------------------------------------------- ternary_diagram(data) ## ----results='hide'----------------------------------------------------------- ternary_diagram(data, page = 2) ## ----results='hide'----------------------------------------------------------- ternary_diagram(data, page = 3) ## ----results='hide'----------------------------------------------------------- range_test(data) ## ----results='hide'----------------------------------------------------------- tracers_seeds <- CTS_explore(data, iter = 1000) ## ----echo=FALSE--------------------------------------------------------------- knitr::kable( head(tracers_seeds), caption = "Preview: Minimal tracer combinations ", escape = FALSE ) ## ----------------------------------------------------------------------------- selected_data <- CTS_select(data, tracers_seeds, seed_id = 1, error_threshold = 0.05) ## ----echo=FALSE--------------------------------------------------------------- knitr::kable( head(selected_data), caption = "Preview: dataset after CTS_select", escape = FALSE ) ## ----results='hide'----------------------------------------------------------- output_unmix <- unmix(selected_data) ## ----echo=FALSE--------------------------------------------------------------- knitr::kable( head(output_unmix), caption = "Preview: unmixing results", escape = FALSE ) ## ----eval=FALSE--------------------------------------------------------------- # help("unmix") ## ----------------------------------------------------------------------------- plot_results(output_unmix, violin = FALSE, ) ## ----------------------------------------------------------------------------- plot_results(output_unmix, violin = TRUE,) ## ----------------------------------------------------------------------------- apportionments <- c(0.435, 0.285, 0.280) normalized_error <- validate_results(selected_data, apportionments) ## ----echo=FALSE--------------------------------------------------------------- knitr::kable( head(normalized_error), caption = "Preview: normalized error values from validate_results", escape = FALSE ) ## ----eval=FALSE--------------------------------------------------------------- # ################################### # ###### 0. Install and set wd # ################################### # install.packages("fingerPro") # one time # setwd("C:/your/file/directory") # your own working directory (wd) # # # ################################### # ###### 1. Load and verify the data # ################################### # library(fingerPro) # data <- read_database(system.file("extdata", "example_geochemical_3s_raw.csv", package = "fingerPro")) # Input example dataset # # # ################################### # ###### 2. Exploratory analysis # ################################### # # # ###### Box plots # # box_plot(data) # # box_plot(data, page = 1) # Visualise a specific page (e.g. page 1) # box_plot(data, page = 2) # Visualise a specific page (e.g. page 2) # box_plot(data, page = 3) # Visualise a specific page (e.g. page 3) # box_plot(data, n_row = 3, n_col = 6,) # Visualise all tracers # # # Save results as a PNG image # png("output_boxplot_all.png", width = 30, height = 15, units = "cm", res = 300) # to save .png results # box_plot(data, n_row = 3, n_col = 6,) # Visualise all tracers # dev.off() # # # Check 'help' for more information # help("box_plot") # # # ###### Correlation analysis # # correlation_plot(data) # # correlation_plot(data, columns = c(1:8)) # correlation plot of n tracers (e.g. 1 to 8) # # # Save results as a PNG image # png("output_correlationplot_tracers1-8.png", width = 25, height = 15, units = "cm", res = 300) # to save .png results # correlation_plot(data, columns = c(1:8)) # correlation plot of n tracers (e.g. 1 to 8) # dev.off() # # # Check 'help' for more information # help("correlation_plot") # # # ###### Linear Discriminant Analysis (LDA) # # LDA_plot(data) # # # Save results as a PNG image # png("output_LDA.png", width = 15, height = 12, units = "cm", res = 300) # to save .png results # LDA_plot(data) # dev.off() # # # ###### Principal Component Analysis (PCA) # # PCA_plot(data) # # # Save results as a PNG image # png("output_PCA.png", width = 15, height = 12, units = "cm", res = 300) # to save .png results # PCA_plot(data) # dev.off() # # # ###### Individual tracer analysis and ternary diagrams # # output_ternary <- ternary_diagram(data) # # ternary_diagram(data, page = 1) # Visualise a specific page (e.g. page 1) # ternary_diagram(data, page = 2) # Visualise a specific page (e.g. page 2) # ternary_diagram(data, page = 3) # Visualise a specific page (e.g. page 3) # ternary_diagram(data, rows = 4, cols = 5) # Visualise all tracers # # # e.g. Save ternary_diagram results as a PNG image # png("output_ternary_all.png", width = 18, height = 12, units = "cm", res = 300) # to save .png results # output_ternary_all <- ternary_diagram(data, rows = 4, cols = 5) # Visualise all tracers # dev.off() # # # Check 'help' for more information # help("ternary_diagram") # # # ###### Range test # data_rangetest <- range_test(data) # write.csv(data_rangetest, "output_rangetest.csv") # # # ################################### # ###### 3. Tracer selection # ################################### # # # ###### CTS_explore # # tracers_seeds <- CTS_explore(data, iter = 1000) # write.csv(tracers_seeds, "output_CTS_explore_tracers_seeds.csv") # # # Check 'help' for more information # help("CTS_explore") # # # ###### CTS_select # # selected_data <- CTS_select(data, tracers_seeds, seed_id = 1, error_threshold = 0.05) # (e.g. Seed 1 selected with an error of 5% (0.05)) # write.csv(selected_data, "output_CTS_select_selected_data.csv") # # # Check 'help' for more information # help("CTS_select") # # ################################### # ###### 4. Unmix # ################################### # # output_unmix <- unmix(selected_data) # write.csv(output_unmix, "output_unmix.csv") # # # Check 'help' for more information # help("unmix") # # plot_results(output_unmix, violin = FALSE) # Density plot # plot_results(output_unmix, violin = TRUE) # Violing plot # # # save density plot # png("output_unmix_densityplot.png", width = 18, height = 12, units = "cm", res = 300) # to save .png results # plot_results(output_unmix, violin = FALSE) # Density plot # dev.off() # # # save violin plot # png("output_unmix_violinplot.png", width = 18, height = 12, units = "cm", res = 300) # to save .png results # plot_results(output_unmix, violin = TRUE) # Violing plot # dev.off() # # # ################################### # ###### 5. Validate results # ################################### # # apportionments <- c(0.435, 0.285, 0.280) # normalized_error <- validate_results(selected_data, apportionments = c(0.435, 0.285, 0.280), error_threshold = 0.05) # write.csv(normalized_error, "output_validate_results_normalized_error.csv") # # # Check 'help' for more information # help("validate_results")