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

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

quick save before swtich branch

parent ca72d449
Branches
No related tags found
No related merge requests found
## extract LOQs for the data
extract_loqs <- function(df, list_pfas){
data_loq <- df %>%
filter(value_below_loq == TRUE) %>%
group_by(substance) %>%
summarise(min_loq = min(loq),
max_loq = max(loq), .groups = "drop") %>%
......
## multi-
## Factor Analysis on Mixed Data (FAMD)
library(ProjectTemplate)
load.project()
library(FactoMineR)
library(factoextra)
# ------------ PCA --------------
## standardization
data_corr <- data_ros %>%
left_join(info_pfas, by = c("substance", "cas_number")) %>%
group_by(type, substance) %>%
mutate(value_scaled = scale(value))
numeric_data_scaled <- data_corr$value_scaled
## perform pca
pca_result <- PCA(numeric_data_scaled, graph = FALSE)
library(Factoshiny)
# -------- restructure the data for FAMD --------
data_famd_raw <- data_ros %>%
filter(datasource == "EU-PROMISCES") %>%
select(code, matrix, type, substance, value) %>%
group_by(code, matrix, type, substance) %>%
filter(row_number() == 1) %>%
ungroup() %>%
pivot_wider(names_from = substance, values_from = value)
colSums(is.na(data_famd_raw))
# data_famd_raw %>% filter(if_any(4:35, is.na))
# fill NAs with half_loq
data_loq <- data_ros %>%
filter(datasource == "EU-PROMISCES") %>%
filter(value_below_loq == TRUE) %>%
group_by(substance, type) %>%
summarise(loq = mean(loq), .groups = "drop")
data_famd_long <- data_famd_raw %>%
pivot_longer(cols = 4:35, names_to = "substance", values_to = "value") %>%
left_join(data_loq, by = c("substance", "type")) %>%
mutate(value = ifelse(is.na(value), loq / 2, value)) %>%
select(-loq)
data_famd <- data_famd_long %>%
pivot_wider(names_from = substance, values_from = value) %>%
select(-code)
Factoshiny(data_famd)
# -------- perform MFA ------
res.FAMD<-FAMD(data_famd,graph=FALSE)
plot.FAMD(res.FAMD,invisible=c('ind.sup'),title="Graph of individuals and categories")
plot.FAMD(res.FAMD,axes=c(1,2),choix='var',title="Graph of the variables")
plot.FAMD(res.FAMD, choix='quanti',title="Correlation circle")
summary(res.FAMD)
......@@ -2,4 +2,18 @@
library(ProjectTemplate)
load.project()
# ------- SW and GW ------
## define list of type and pfas to present
type_swgw <- level_type[c(2,3,4,5,6)]
pfas_swgw <- c("PFBA", "PFPeA", "PFHxA", "PFHpA", "PFOA",
"PFBS", "PFHxS", "PFOS", "GenX", "ADONA")
## prepare dataset
data_swgw <- data_ros %>%
filter(type %in% type_swgw, substance %in% pfas_swgw) %>%
droplevels()
loq_swgw <- extract_loqs(data_swgw, pfas_swgw)
test <- data_swgw %>% arrange(desc(loq))
test2 <- data_all %>% filter(datasource == "AT-GZUV-GW")
table(test2$loq)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment