*** Wartungsfenster jeden ersten Mittwoch vormittag im Monat ***

Skip to content
Snippets Groups Projects
Commit 1617fa24 authored by Liu, Meiqi's avatar Liu, Meiqi
Browse files

Initial commit with the latest version

parents
Branches
No related tags found
No related merge requests found
.Rproj.user
.Rhistory
.RData
.Ruserdata
data/*.accdb
data/*.laccdb
data/Query_Results.csv
data/Table*.csv
docs/*.csv
src/Paper_monitoring.R
src/plot_sum_of_pfas.R
graphs/*.png
graphs/*.jpg
# Contributing to the project
Thank you for your interests on our project. For further discussions on the packages and code we are using for environmental data analysis, you can contact me via email: meiqi.liu@tuwien.ac.at
We welcome contributions on bug reports.
## Report Bugs
If you find a bug, please create an issue and provide as much information as possible:
- A clear and descriptive title.
- Steps to reproduce the bug.
- Expected and actual behavior.
- Screenshots or error logs if applicable.
You can open a new issue in the Issues tab on GitLab.
## Code Improvements
Although the code here is prepared for specific usage (mainly publicaton purpose), we welcome any suggestions for improvments, e.g. packages, visulisation, analysis process.
\ No newline at end of file
This diff is collapsed.
# PROMISCES: Analysis for Case Study 2 Monitoring Data
Welcome to the repository for the data analysis on monitoring data collected within the framework of the [EU project PROMISCES](https://promisces.eu/) Case Study 2.
## Project Folder Structure
This project follows the structure enforced by the *ProjectTemplate* R package, which simplifies origanizing and managing complex data science projects. Beflow is an overview of the folder structure:
- cache
- Contains pre-loaded files, including geodata and R data
- config
- Contains configuration files for loading and managing data
- For list of loaded r-librarys, you need to change the global.dcf
- data
- Raw and processed data files
- subfolder /rawdaya_pfas: Raw data files (unprocessed)
- others: Processed and cleaned data
- diagnostics
- Not used in this project
- doc
- Output data and results
- graphs
- Output visulisations
- lib
- Custom R functions for the project
- logs
- munge
- Scripts for preprocessing and data transformation
- profilling
- reports
- src
- tests
At the beginning of script, you should call `create.project()` to set up this project and all of its contents:
library('ProjectTemplate')
load.project()
After you enter the second line of code, you'll see a series of automated messages as ProjectTemplate goes about doing its work. This work involves:
* Reading in the global configuration file contained in `config`.
* Loading any R packages you listed in the configuration file.
* Reading in any datasets stored in `data` or `cache`.
* Preprocessing your data using the files in the `munge` directory.
For more details about ProjectTemplate, see http://projecttemplate.net
\ No newline at end of file
TODO 0 → 100644
This folder stores any data sets that:
- (a) are generated during a preprocessing step
- (b) don't need to be regenerated every single time you analyze your data.
You can use the `cache()` function to store data to this directory automatically.
Any data set found in both the `cache` and `data` directories will be drawn from `cache` instead of `data` based on ProjectTemplate's priority rules.
File added
File added
File added
File added
Here you'll store any configurations settings for your project. Use the DCF format that the `read.dcf()` function parses.
version: 0.11.0
data_loading: TRUE
data_loading_header: TRUE
data_ignore:
cache_loading: TRUE
recursive_loading: FALSE
munging: TRUE
logging: FALSE
logging_level: INFO
load_libraries: TRUE
libraries: readxl, crayon, NADA, ggsci, ggrepel,
tidyverse, odbc, here, rmarkdown, ggh4x, scales, FSA
as_factors: FALSE
tables_type: data.frame
attach_internal_libraries: FALSE
cache_loaded_data: TRUE
sticky_variables: NONE
underscore_variables: TRUE
cache_file_format: RData
This folder stores raw data files.
If they are encoded in a supported file format, they'll automatically be loaded when calling `load.project()`.
In case to reproduce the code for further data analysis, you need to download the data here:
> Liu, M. (2024). Per- and Polyfluoroalkyl Substances (PFAS) Concentrations in the Upper Danube Catchment: Integrated Dataset from H2020 Project PROMISCES - Case Study 2 [Data set]. Zenodo. https://doi.org/10.5281/zenodo.14027088
put the .accdb file or "Query_Results.csv" under this folder. This file will be ignored when push to git (.gitignore) and only visible at local level.
\ No newline at end of file
"sample","perc_wwtp"
"Altarm Poigenau",3.55
"Alz upstream",1.55
"Inn, Wernstein am Inn",2
"Inn, Winklham",1.55
"Ipoly",1.49
"Isar",5.49
"Morava",7.64
"Salzach",1.59
"Svratka",10.09
"Thaya",5.78
"Enns",0.72
"Inn, Neuötting",1.54
"Inn, Ruderverein",1.54
"Traun",2.06
"Raab",12.14
"DH-RIV-AYH",0.18
"ATFW73200987",1.18
"DH-RIV-AYL",2.04
"DESM_CBZ029",5.8
"DESM_CRI018",3.51
"DESM_DEBY_2306",2.77
"ATFW54110087",1.6
"ATFW31100127",44.23
"DESM_DEBY_2322",2.77
"DESM_DEBY_10157",3.8
"DESM_DEBY_102007",3.47
"DESM_DEBY_102027",3.88
"DESM_DEBY_10251",3.8
"DESM_DEBY_105892",2.95
"DESM_DEBY_105900",2.95
"DESM_DEBY_10607",3.53
"DESM_DEBY_106070",1.11
"DESM_DEBY_10754",0.58
"DESM_DEBY_10782",0.58
"DESM_DEBY_10881",1.87
"DESM_DEBY_102948",3.22
"DESM_DEBY_103111",3.19
"DESM_DEBY_103242",3.73
"DESM_DEBY_103286",2.24
"DESM_DEBY_103342",3.22
"DESM_DEBY_103362",3.95
"DESM_DEBY_103364",3.97
"DESM_DEBY_103370",3.47
"DESM_DEBY_103395",3.19
"DESM_DEBY_103406",2.88
"DESM_DEBY_103408",4.62
"DESM_DEBY_103409",4.62
"DESM_DEBY_103416",2.88
"DESM_DEBY_10909",5.67
"DESM_DEBY_10928",5.67
"DESM_DEBY_10987",5.67
"DESM_DEBY_10988",5.67
"DESM_DEBY_11062",1.11
"DESM_DEBY_11094",3.81
"DESM_DEBY_11138",3.81
"DESM_DEBY_111636",1.29
"DESM_DEBY_111662",1.77
"DESM_DEBY_111756",1.54
"DESM_DEBY_111794",1.29
"DESM_DEBY_2358",2.24
"DESM_DEBY_2371",2.24
"DESM_DEBY_2384",2.95
"DESM_DEBY_2389",3.97
"DESM_DEBY_103419",3.86
"DESM_DEBY_10428",3.62
"DESM_DEBY_10529",3.62
"DESM_DEBY_105412",4.57
"DESM_DEBY_105426",5.49
"DESM_DEBY_105434",3.47
"DESM_DEBY_105438",3.47
"DESM_DEBY_10551",3.53
"DESM_DEBY_105532",5.67
"DESM_DEBY_105572",3.63
"DESM_DEBY_105632",3.63
"DESM_DEBY_105645",1.65
"DESM_DEBY_105786",1.11
"DESM_DEBY_2398",3.95
"DESM_DEBY_2413",3.95
"DESM_DEBY_2617",3.47
"DESM_DEBY_105841",2.24
"DESM_DEBY_105890",2.95
"DESM_DEBY_111808",1.77
"DESM_DEBY_111817",1.46
"DESM_DEBY_11233",3.63
"DESM_DEBY_11239",5.67
"DESM_DEBY_11274",0.78
"DESM_DEBY_11353",5.49
"DESM_DEBY_11423",5.49
"DESM_DEBY_114296",1.38
"DESM_DEBY_11431",5.49
"DESM_DEBY_11437",5.49
"DESM_DEBY_11446",5.49
"DESM_DEBY_2918",3.47
"DESM_DEBY_2927",3.47
"DESM_DEBY_2939",3.04
"DESM_DEBY_3015",1.13
"DESM_DEBY_3022",1.13
"DESM_DEBY_3029",1.13
"DESM_DEBY_114475",1.11
"DESM_DEBY_3044",3.32
"DESM_DEBY_3092",2.23
"DESM_DEBY_3095",3.32
"DESM_DEBY_3129",3.19
"DESM_DEBY_3151",1.01
"DESM_DEBY_114528",3.81
"DESM_DEBY_11492",3.07
"DESM_DEBY_11513",3.07
"DESM_DEBY_115684",1.38
"DESM_DEBY_115837",2.18
"DESM_DEBY_11584",1.53
"DESM_DEBY_115858",2.95
"DESM_DEBY_11595",1.53
"DESM_DEBY_11609",1.53
"DESM_DEBY_11650",1.33
"DESM_DEBY_31712",3.88
"DESM_DEBY_3195",3.88
"DESM_DEBY_11678",1.33
"DESM_DEBY_11698",1.33
"DESM_DEBY_3226",2.88
"DESM_DEBY_3247",2.88
"DESM_DEBY_3255",2.88
"DESM_DEBY_3278",2.88
"DESM_DEBY_3306",2.88
"DESM_DEBY_3315",3.86
"DESM_DEBY_3357",4.57
"DESM_DEBY_3390",4.62
"DESM_DEBY_11700",1.33
"DESM_DEBY_11899",2.64
"DESM_DEBY_11938",1.18
"DESM_DEBY_12046",1.29
"DESM_DEBY_12074",1.29
"DESM_DEBY_12084",1.46
"DESM_DEBY_121167",1.11
"DESM_DEBY_12126",1.46
"DESM_DEBY_3500",2.83
"DESM_DEBY_12302",1.54
"DESM_DEBY_3703",2.83
"DESM_DEBY_3848",2.74
"DESM_DEBY_3982",2.61
"DESM_DEBY_40553",1.65
"DESM_DEBY_4172",2.3
"DESM_DEBY_42442",3.22
"DESM_DEBY_4304",2.3
"DESM_DEBY_4328",2.3
"DESM_DEBY_4433",3.8
"DESM_DEBY_4535",3.8
"DESM_DEBY_4574",3.73
"DESM_DEBY_5031",3.73
"DESM_DEBY_12341",1.36
"DESM_DEBY_125619",4.57
"DESM_DEBY_125643",0.78
"DESM_DEBY_12615",1.55
"DESM_DEBY_126323",1.46
"DESM_DEBY_12732",1.38
"DESM_DEBY_12771",1.38
"DESM_DEBY_12857",1.38
"DESM_DEBY_5415",3.73
"DESM_DEBY_5882",3.03
"DESM_DEBY_12859",1.38
"DESM_DEBY_128652",1.77
"DESM_DEBY_5963",3.03
"DESM_DEBY_6591",0.63
"DESM_DEBY_66985",1.13
"DESM_DEBY_6953",1.65
"DESM_DEBY_7254",1.65
"DESM_DEBY_7927",4.51
"DESM_DEBY_8049",4.51
"DESM_DEBY_8081",4.51
"DESM_DEBY_8104",3.45
"DESM_DEBY_128654",1.77
"DESM_DEBY_12872",1.92
"DESM_DEBY_12940",1.55
"DESM_DEBY_129870",0.58
"DESM_DEBY_12988",2.38
"DESM_DEBY_13027",2.38
"DESM_DEBY_130316",0.78
"DESM_DEBY_13104",2.38
"DESM_DEBY_131156",1.29
"DESM_DEBY_131157",1.29
"DESM_DEBY_8244",1.89
"DESM_DEBY_131653",5.49
"DESM_DEBY_13235",2.38
"DESM_DEBY_8319",1.89
"DESM_DEBY_8618",1.89
"DESM_DEBY_8672",1.89
"DESM_DEBY_9110",2.04
"DESM_DEBY_95991",3.8
"DESM_DEBY_96041",1.13
"DESM_DEBY_96508",1.01
"DESM_DEBY_96510",3.86
"DESM_DEBY_96548",0.86
"DESM_DEBY_96672",3.8
"DESM_DEBY_96769",1.77
"DESM_DEBY_96982",2.26
"DESM_DEBY_9734",2.04
"DESM_DEBY_9921",3.8
"DESM_DEBY_132350",1.46
"DESM_DEBY_13243",1.68
"DESM_DEBY_132673",1.38
"DESM_DEBY_13289",3.1
"DESM_DEBY_136338",3.88
"DESM_DEBY_137190",3.9
"DESM_DEBY_139744",1.53
"DESM_DEBY_140480",3.22
"DESM_DEBY_140993",0.58
"DESM_DEBY_141110",2.23
"DESM_DEBY_143021",3.04
"DESM_DEBY_143161",3.03
"DESM_DEBY_176643",3.95
"DESM_DEBY_176645",3.47
"DESM_DEBY_176725",5.67
"DESM_DEBY_176735",3.8
"DESM_DEBY_193155",2.64
"DESM_DEBY_195630",0.78
"DESM_DEBY_196258",3.03
"DESM_DEBY_196404",5.49
"DESM_DEBY_198949",4.51
"DESM_DEBY_198967",2.18
"DESM_DEBY_199818",3.07
"DESM_DEBY_2290",1.11
"DESM_DEBY_206206",5.49
"DESM_DEBY_206325",3.8
"DESM_DEBY_206371",4.62
"DESM_DEBY_206728",1.55
"DESM_DEBY_2097",3.81
"DESM_DEBY_213772",3.8
"DESM_DEBY_213778",1.38
"DESM_DEBY_213975",2.23
"DESM_DEBY_2272",1.11
"DESM_DEBY_2294",2.18
"JDS4-11-R-SW-LS",7.41
"JDS4-12-R-SW-LS",7.64
"JDS4-13-L-SW-LS",7.59
"JDS4-15-R-SW-LS",3.8
"JDS4-20-R-SW-LS",3.36
"JDS4-19-R-SW-LS",5.01
"JDS4-21-R-SW-LS",1.49
"JDS4-5-L-SW-LS",1.68
"RW-UpperAustria-1",1.6
"RW-UpperAustria-2",1.59
"RW-UpperAustria-3",1.59
"RW-UpperAustria-4",0
"RW-UpperAustria-5",1.55
"RW-UpperAustria-6",5.13
"RW-UpperAustria-7",3.28
"RW-UpperAustria-8",12.2
"RW-UpperAustria-9",6.39
"RW-UpperAustria-10",2
"RW-UpperAustria-11",2.72
"RW-UpperAustria-12",7.31
"RW-UpperAustria-13",2.06
"RW-UpperAustria-14",92.55
"RW-UpperAustria-15",0
"RW-UpperAustria-16",0
"RW-UpperAustria-17",0.72
"RW-UpperAustria-18",7.2
"RW-UpperAustria-19",3.01
"RW-UpperAustria-24",1.6
"RW-UpperAustria-25",1.59
"RW-UpperAustria-26",1.59
"RW-UpperAustria-27",0
"RW-UpperAustria-28",1.55
"RW-UpperAustria-29",5.13
"RW-UpperAustria-30",3.28
"RW-UpperAustria-31",12.2
"RW-UpperAustria-32",6.39
"RW-UpperAustria-33",2
"RW-UpperAustria-34",2.72
"RW-UpperAustria-35",7.31
"RW-UpperAustria-36",2.06
"RW-UpperAustria-37",92.55
"RW-UpperAustria-38",0
"RW-UpperAustria-39",0
"RW-UpperAustria-40",0.72
"RW-UpperAustria-41",7.2
"RW-UpperAustria-42",3.01
"RW-UpperAustria-47",1.6
"RW-UpperAustria-48",1.6
"RW-UpperAustria-49",1.59
"RW-UpperAustria-50",1.59
"RW-UpperAustria-51",0
"RW-UpperAustria-52",1.55
"RW-UpperAustria-53",5.13
"RW-UpperAustria-54",3.28
"RW-UpperAustria-55",12.2
"RW-UpperAustria-56",6.39
"RW-UpperAustria-57",2
"RW-UpperAustria-58",2.72
"RW-UpperAustria-59",2.72
"RW-UpperAustria-60",7.31
"RW-UpperAustria-61",2.06
"RW-UpperAustria-62",92.55
"RW-UpperAustria-63",0
"RW-UpperAustria-64",0
"RW-UpperAustria-65",0.72
"RW-UpperAustria-66",7.2
"RW-UpperAustria-67",1.32
"RW-UpperAustria-68",3.01
"RW-UpperAustria-73",1.6
"RW-UpperAustria-74",1.6
"RW-UpperAustria-75",1.59
"RW-UpperAustria-76",1.59
"RW-UpperAustria-77",0
"RW-UpperAustria-78",1.55
"RW-UpperAustria-79",5.13
"RW-UpperAustria-80",3.28
"RW-UpperAustria-81",12.2
"RW-UpperAustria-82",6.39
"RW-UpperAustria-83",2
"RW-UpperAustria-84",2.72
"RW-UpperAustria-85",2.72
"RW-UpperAustria-86",7.31
"RW-UpperAustria-87",2.06
"RW-UpperAustria-88",92.55
"RW-UpperAustria-89",0
"RW-UpperAustria-90",0
"RW-UpperAustria-91",0.72
"RW-UpperAustria-92",7.2
"RW-UpperAustria-93",1.32
"RW-UpperAustria-94",3.01
"RW-UpperAustria-99",1.6
"RW-UpperAustria-100",1.6
"RW-UpperAustria-101",1.6
"RW-UpperAustria-102",1.55
"RW-UpperAustria-103",1.55
"RW-UpperAustria-104",1.92
"RW-UpperAustria-105",2
"RW-UpperAustria-106",0
"RW-UpperAustria-107",0
"RW-UpperAustria-108",0.72
"RW-UpperAustria-109",0
"RW-UpperAustria-110",0
"RW-UpperAustria-111",0
"RW-UpperAustria-113",1.6
"RW-UpperAustria-114",1.6
"RW-UpperAustria-115",1.6
"RW-UpperAustria-116",1.55
"RW-UpperAustria-117",1.55
"RW-UpperAustria-118",1.92
"RW-UpperAustria-119",2
"RW-UpperAustria-120",0
"RW-UpperAustria-121",0
"RW-UpperAustria-122",0.72
"RW-UpperAustria-123",0
"RW-UpperAustria-124",0
"RW-UpperAustria-125",0
"RW-UpperAustria-127",1.6
"RW-UpperAustria-128",1.6
"RW-UpperAustria-129",1.6
"RW-UpperAustria-130",1.6
"RW-UpperAustria-131",1.92
"RW-UpperAustria-132",0
"RW-UpperAustria-133",0
"RW-UpperAustria-134",0
"RW-UpperAustria-135",0
"RW-UpperAustria-136",0
"RW-UpperAustria-137",0
"RW-UpperAustria-138",0
"RW-UpperAustria-139",0
"RW-UpperAustria-140",0
"RW-UpperAustria-141",0
"RW-UpperAustria-142",0
"RW-UpperAustria-143",0
"RW-UpperAustria-144",1.6
"RW-UpperAustria-145",1.6
"RW-UpperAustria-146",1.6
"RW-UpperAustria-147",1.6
"RW-UpperAustria-148",1.92
"RW-UpperAustria-149",1.6
"RW-UpperAustria-150",1.59
"RW-UpperAustria-151",1.59
"RW-UpperAustria-152",0
"RW-UpperAustria-153",1.55
"RW-UpperAustria-154",5.13
"RW-UpperAustria-155",3.28
"RW-UpperAustria-156",1.55
"RW-UpperAustria-157",12.2
"RW-UpperAustria-158",1.92
"RW-UpperAustria-159",6.39
"RW-UpperAustria-160",2
"RW-UpperAustria-161",2.72
"RW-UpperAustria-162",7.31
"RW-UpperAustria-163",2.06
"RW-UpperAustria-164",92.55
"RW-UpperAustria-165",0
"RW-UpperAustria-166",0.72
"RW-UpperAustria-167",7.2
"RW-UpperAustria-168",1.32
"RW-UpperAustria-169",3.01
"RW-UpperAustria-174",0
"RW-UpperAustria-175",7.2
"RW-UpperAustria-176",3.01
"RW-UpperAustria-177",0
"RW-UpperAustria-178",0
"RW-UpperAustria-179",0
"RW-UpperAustria-180",0
"RW-UpperAustria-181",0
"RW-UpperAustria-182",0
"RW-UpperAustria-183",1.6
"RW-UpperAustria-184",1.59
"RW-UpperAustria-185",1.59
"RW-UpperAustria-186",0
"RW-UpperAustria-187",1.55
"RW-UpperAustria-188",5.13
"RW-UpperAustria-189",3.28
"RW-UpperAustria-190",12.2
"RW-UpperAustria-191",6.39
"RW-UpperAustria-192",2
"RW-UpperAustria-193",2.72
"RW-UpperAustria-194",7.31
"RW-UpperAustria-195",2.06
"RW-UpperAustria-196",92.55
"RW-UpperAustria-197",0
"RW-UpperAustria-198",0.72
"RW-UpperAustria-199",7.2
"RW-UpperAustria-200",1.32
"RW-UpperAustria-201",3.01
"RW-UpperAustria-206",2.06
"RW-UpperAustria-207",92.55
"RW-UpperAustria-208",92.55
"RW-UpperAustria-209",0
"RW-UpperAustria-210",0
"RW-UpperAustria-211",0
"RW-UpperAustria-212",3.17
"RW-UpperAustria-216",1.6
"RW-UpperAustria-217",1.6
"RW-UpperAustria-218",1.59
"RW-UpperAustria-219",1.6
"RW-UpperAustria-220",1.6
"RW-UpperAustria-221",1.92
"RW-UpperAustria-222",1.6
"RW-UpperAustria-223",1.6
"RW-UpperAustria-224",1.6
"RW-UpperAustria-225",2.06
"RW-UpperAustria-226",5.16
"RW-UpperAustria-227",92.55
"RW-UpperAustria-228",92.55
"RW-UpperAustria-229",0
"RW-UpperAustria-230",0
"RW-UpperAustria-231",0
"RW-UpperAustria-232",3.17
"RW-UpperAustria-236",2.06
"RW-UpperAustria-237",5.16
"RW-UpperAustria-238",92.55
"RW-UpperAustria-239",92.55
"RW-UpperAustria-240",0
"RW-UpperAustria-241",0
"RW-UpperAustria-242",0
"RW-UpperAustria-243",3.17
"RW-UpperAustria-247",92.55
"RW-UpperAustria-248",0
"RW-UpperAustria-260",2.06
"RW-UpperAustria-261",2.06
"RW-UpperAustria-262",3.17
"RW-UpperAustria-263",2.06
"RW-UpperAustria-264",3.17
"RW-UpperAustria-265",3.17
"RW-UpperAustria-266",3.17
"RW-UpperAustria-267",2.06
"RW-UpperAustria-268",2.06
substance,cas_number,RPF_EQS,RPF_DWD
PFBA,375-22-4,0.05,1
PFPeA,2706-90-3,0.03,1
PFHxA,307-24-4,0.01,1
PFHpA,375-85-9,0.505,1
PFOA,335-67-1,1,1
PFNA,375-95-1,10,1
PFDA,335-76-2,7,1
PFUdA,2058-94-8,4,1
PFDoDA,307-55-1,3,1
PFTrDA,72629-94-8,1.7,1
PFTeDA,376-06-7,0.3,0
PFBS,375-73-5,0.001,1
PFPeS,2706-91-4,0.3005,1
PFHxS,355-46-4,0.6,1
PFHpS,375-92-8,1.3,1
PFOS,1763-23-1,2,1
PFNS,68259-12-1,0,1
PFDS,335-77-3,2,1
GenX,13252-13-6,0.06,0
ADONA,919005-14-4,0.03,0
4:2 FTS,757124-72-4,0,0
6:2 FTS,27619-97-2,0,0
8:2 FTS,39108-34-4,0,0
PFOSA,754-91-6,0,0
N-MeFOSA,31506-32-8,0.02,0
N-EtFOSA,4151-50-2,0.03,0
MeFOSAA,2355-31-9,0,0
EtFOSAA,2991-50-6,0,0
9Cl-PF3ONS,73606-19-6,0.02,0
11Cl-PF3OUdS,763051-92-9,0,0
N-MeFOSE,24448-09-7,0,0
N-EtFOSE,1691-99-2,0,0
Here you can store any scripts you use to diagnose your data sets for corruption or problematic data points.
library(ProjectTemplate)
load.project()
# original data structure
glimpse(data_all)
# amount of data for each type
str_type <- data_all %>%
group_by(type,substance) %>%
arrange(type,substance) %>%
summarise(n = n(), .groups = "drop") %>%
pivot_wider(names_from = substance, values_from = n)
# sampling time period
data_all %>%
filter(datasource == "EU-PROMISCES") %>%
summarise(min_date = min(sampling_time, na.rm = TRUE),
max_date = max(sampling_time, na.rm = TRUE))
min(data_all$sampling_time, na.rm = T)
max(data_all$sampling_time, na.rm = T)
table(data_all$datasource)
data_all %>%
filter(datasource == "EU-PROMISCES") %>%
summarise(min = min(sampling_time, na.rm = T),
max = max(sampling_time, na.rm = T))
# check whether different wastewater load will affect the PFAS concentration
library(ProjectTemplate)
load.project()
# -------- load data -------
# define list of pfas to present
detect_sw <- data_all %>%
filter(matrix == "Riverwater") %>%
group_by(substance) %>%
summarise(n = n(),
detection_rate = mean(!value_below_loq) * 100) %>%
arrange(desc(detection_rate))
# top 10 detects - rate > 20%
pfas_sw <- detect_sw$substance[1:10] %>% droplevels()
# extact tributary data, join with ww share load info
data_tributary <- data_ros %>%
filter(type == "Danube Tributary", substance %in% pfas_sw) %>%
droplevels() %>%
left_join(info_ww_share, by = "sample")
colSums(is.na(data_tributary))
str(data_tributary)
# -------- visulisation ------
data_tributary$perc_wwtp_1pct_group <- cut(data_tributary$perc_wwtp,
breaks = seq(0, max(data_tributary$perc_wwtp, na.rm = TRUE) + 1, by = 1),
labels = paste0(seq(0, max(data_tributary$perc_wwtp, na.rm = TRUE)),
"-", seq(1, max(data_tributary$perc_wwtp, na.rm = TRUE) + 1, by = 1), "%"),
include.lowest = TRUE)
# Calculate counts for each group
group_counts <- data_tributary %>%
group_by(perc_wwtp_1pct_group) %>%
summarise(count = n())
# Plot
ggplot(data_tributary, aes(x = value)) +
geom_histogram(binwidth = 0.5, fill = "steelblue", color = "black", alpha = 0.7) +
facet_wrap(~ perc_wwtp_1pct_group, scales = "free_y") +
scale_x_log10() +
labs(title = "PFAS Concentration Distribution by Wastewater Contribution Group (1% Increment)",
x = "PFAS Concentration (ng/L)",
y = "Frequency") +
theme_minimal()
# ------- classify groups --------
data_tributary$perc_wwtp_group <- cut(data_tributary$perc_wwtp,
breaks = c(-Inf, 1, 3, Inf),
labels = c("<1%", "1-3%", ">3%"))
table(data_tributary$perc_wwtp_group)
# -------- summary statistics --------
summary_stats <- aggregate(value ~ perc_wwtp_group, data = data_tributary,
FUN = function(x) c(mean = mean(x), median = median(x), sd = sd(x)))
print(summary_stats)
# Perform one-way ANOVA without "Tributary Alz"
anova_result <- aov(value ~ perc_wwtp_group, data = data_tributary)
# View the summary of ANOVA
summary(anova_result)
# Perform Tukey HSD test
tukey_result <- TukeyHSD(anova_result)
print(tukey_result_tri)
# test the compliance of PFOS EQS
library(ProjectTemplate)
load.project()
# -------- check compliance -----
# total entries of PFOS
nrow(data_all[data_all$substance == "PFOS", ])
# entries where value > 0.65
nrow(data_all[data_all$substance == "PFOS" & data_all$value > 0.65, ])
# percentage
nrow(data_all[data_all$substance == "PFOS" & data_all$value > 0.65, ])/nrow(data_all[data_all$substance == "PFOS", ])
# grouped percentages
data_all %>%
filter(substance == "PFOS") %>%
group_by(matrix) %>%
summarise(
total = n(),
above_065 = sum(value > 0.65),
percentage_above_065 = (above_065 / total) * 100
) %>%
arrange (desc(percentage_above_065))
data_all %>%
filter(substance == "PFOS") %>%
group_by(type) %>%
summarise(
total = n(),
above_065 = sum(value > 0.65),
percentage_above_065 = (above_065 / total) * 100
) %>%
arrange (desc(percentage_above_065))
This folder stores documentations briefly state the data analysis.
Scripts here should not involve new coding, but only examing the structure and contents of R-objects.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment