From e723adc4940a66f93d3e5aefc097b63b4ae10466 Mon Sep 17 00:00:00 2001 From: Francesco Sabatini <francesco.sabatini@idiv.de> Date: Tue, 4 Aug 2020 15:51:06 +0200 Subject: [PATCH] Prepared ALSO data based on species covers --- 00_Mesobromion_DataPreparation.R | 191 +++++++++++++++++++------------ 1 file changed, 120 insertions(+), 71 deletions(-) diff --git a/00_Mesobromion_DataPreparation.R b/00_Mesobromion_DataPreparation.R index a12a4be..e825207 100644 --- a/00_Mesobromion_DataPreparation.R +++ b/00_Mesobromion_DataPreparation.R @@ -68,13 +68,15 @@ alltry <- TRY.all.mean.sd.3.by.genus.species.tree %>% dplyr::select(-Wood.vessel.length.mean, -StemDens.mean, -Stem.cond.dens.mean) %>% rename_all(.funs=~gsub(pattern=".mean$", replacement="", x=.)) -traits <- traits0 %>% +all.traits <- traits0 %>% ungroup() %>% #dplyr::select(species, species0) %>% left_join(alltry %>% rename(species=StandSpeciesName), - by="species") %>% + by="species") +traits <- all.traits %>% filter(!is.na(LeafArea)) +dim(all.traits) #[1] 907 81 dim(traits) #[1] 805 2 @@ -159,71 +161,76 @@ traits <- traits %>% filter(species0 %in% colnames(species)) -#recode binary traits to nominal -colnames(traits)[which(colnames(traits)=="LBE_D_plurienn_hapaxanth")] <- "LEB_D_plurienn_hapaxanth" -traits <- traits %>% - mutate(BLU_KL_NEKTAR_HONIG_INSEKTEN=replace(BLU_KL_NEKTAR_HONIG_INSEKTEN, - list=species0 %in% c("Convallaria_majalis", "Maianthemum_bifolium"), - values=0)) - -traits <- traits %>% - as.tbl() %>% - dplyr::select(-starts_with("BL_FORM"), -starts_with("REPR_T"), -starts_with("BLU_KL"), -starts_with("STRAT_T"), -starts_with("BL_AUSD")) %>% - left_join(traits %>% - dplyr::select(species0, `BL_AUSD_immergrün`:`BL_AUSD_überwinternd_grün`, REPR_T_Samen_Sporen:STRAT_T_SR) %>% - gather(key=Trait, value="value", -species0) %>% - separate(Trait, into = c("Trait", "Organ", "Level"), sep = "_", extra = "merge") %>% - unite(Trait, Trait, Organ) %>% - filter(value==1) %>% - dplyr::select(-value) %>% - spread(Trait, Level) %>% - mutate_at(.vars=vars(BL_AUSD:STRAT_T), - .funs=~as.factor(.)), - by="species0") - -## recode traits to numeric -robust.mean <- function(x1,x2=NA,x3=NA,x4=NA){ - x <- c(x1,x2,x3,x4) - if(any(!is.na(x))){mean(x, na.rm=T)} else {NA} +recode.traits <- function(x){ + ## recode traits to numeric + #recode binary traits to nominal + + robust.mean <- function(x1,x2=NA,x3=NA,x4=NA){ + x <- c(x1,x2,x3,x4) + if(any(!is.na(x))){mean(x, na.rm=T)} else {NA} + } + colnames(x)[which(colnames(x)=="LBE_D_plurienn_hapaxanth")] <- "LEB_D_plurienn_hapaxanth" + x <- x %>% + mutate(BLU_KL_NEKTAR_HONIG_INSEKTEN=replace(BLU_KL_NEKTAR_HONIG_INSEKTEN, + list=species0 %in% c("Convallaria_majalis", "Maianthemum_bifolium"), + values=0)) + + x <- x %>% + as.tbl() %>% + dplyr::select(-starts_with("BL_FORM"), -starts_with("REPR_T"), -starts_with("BLU_KL"), -starts_with("STRAT_T"), -starts_with("BL_AUSD")) %>% + left_join(x %>% + dplyr::select(species0, `BL_AUSD_immergrün`:`BL_AUSD_überwinternd_grün`, REPR_T_Samen_Sporen:STRAT_T_SR) %>% + gather(key=Trait, value="value", -species0) %>% + separate(Trait, into = c("Trait", "Organ", "Level"), sep = "_", extra = "merge") %>% + unite(Trait, Trait, Organ) %>% + filter(value==1) %>% + dplyr::select(-value) %>% + spread(Trait, Level) %>% + mutate_at(.vars=vars(BL_AUSD:STRAT_T), + .funs=~as.factor(.)), + by="species0") + + out <- x %>% + dplyr::select(-starts_with("BL_ANAT"), -starts_with("LEB_D"), -starts_with("ROS_T")) %>% + left_join(x %>% + dplyr::select(species0, starts_with("BL_ANAT")) %>% + mutate(BL_ANAT_helomorph=ifelse(BL_ANAT_helomorph==1, 1, NA)) %>% + mutate(BL_ANAT_hygromorph=ifelse(BL_ANAT_hygromorph==1, 2, NA)) %>% + mutate(BL_ANAT_mesomorph=ifelse(BL_ANAT_mesomorph==1, 3, NA)) %>% + mutate(BL_ANAT_skleromorph=ifelse(BL_ANAT_skleromorph==1, 4, NA)) %>% + rowwise() %>% + mutate(BL_ANAT=robust.mean(BL_ANAT_helomorph, BL_ANAT_hygromorph, BL_ANAT_mesomorph, BL_ANAT_skleromorph)) %>% + ungroup() %>% + dplyr::select(species0, BL_ANAT, BL_ANAT_blattsukkulent), + by="species0") %>% + left_join(x %>% + dplyr::select(species0, starts_with("LEB_D")) %>% + rowwise() %>% + mutate(LEB_D_plurienn=max(LEB_D_plurienn_pollakanth + LEB_D_plurienn_hapaxanth, na.rm=T)) %>% + ungroup() %>% + mutate(LEB_D_plurienn=ifelse(LEB_D_plurienn==1, 3, NA)) %>% + mutate(LEB_D_annuell=ifelse(LEB_D_annuell==1, 1, NA)) %>% + mutate(LEB_D_bienn =ifelse(LEB_D_bienn==1, 2, NA)) %>% + rowwise() %>% + mutate(LEB_D=robust.mean(LEB_D_annuell, LEB_D_bienn, LEB_D_plurienn)) %>% + ungroup() %>% + dplyr::select(species0, LEB_D), + by="species0") %>% + left_join(x %>% + dplyr::select(species0, starts_with("ROS_T")) %>% + mutate(ROS_T=ROS_T_Ganzrosettenpflanzen) %>% + mutate(ROS_T=replace(ROS_T, + list=ROS_T_Halbrosettenpflanze==1, + values=0.5)) %>% + mutate(ROS_T=replace(ROS_T, + list=ROS_T_rosettenlose.Pflanzen==1, + values=0)) %>% + dplyr::select(species0, ROS_T), + by="species0") + return(out) } - -traits <- traits %>% - dplyr::select(-starts_with("BL_ANAT"), -starts_with("LEB_D"), -starts_with("ROS_T")) %>% - left_join(traits %>% - dplyr::select(species0, starts_with("BL_ANAT")) %>% - mutate(BL_ANAT_helomorph=ifelse(BL_ANAT_helomorph==1, 1, NA)) %>% - mutate(BL_ANAT_hygromorph=ifelse(BL_ANAT_hygromorph==1, 2, NA)) %>% - mutate(BL_ANAT_mesomorph=ifelse(BL_ANAT_mesomorph==1, 3, NA)) %>% - mutate(BL_ANAT_skleromorph=ifelse(BL_ANAT_skleromorph==1, 4, NA)) %>% - rowwise() %>% - mutate(BL_ANAT=robust.mean(BL_ANAT_helomorph, BL_ANAT_hygromorph, BL_ANAT_mesomorph, BL_ANAT_skleromorph)) %>% - ungroup() %>% - dplyr::select(species0, BL_ANAT, BL_ANAT_blattsukkulent), - by="species0") %>% - left_join(traits %>% - dplyr::select(species0, starts_with("LEB_D")) %>% - rowwise() %>% - mutate(LEB_D_plurienn=max(LEB_D_plurienn_pollakanth + LEB_D_plurienn_hapaxanth, na.rm=T)) %>% - ungroup() %>% - mutate(LEB_D_plurienn=ifelse(LEB_D_plurienn==1, 3, NA)) %>% - mutate(LEB_D_annuell=ifelse(LEB_D_annuell==1, 1, NA)) %>% - mutate(LEB_D_bienn =ifelse(LEB_D_bienn==1, 2, NA)) %>% - rowwise() %>% - mutate(LEB_D=robust.mean(LEB_D_annuell, LEB_D_bienn, LEB_D_plurienn)) %>% - ungroup() %>% - dplyr::select(species0, LEB_D), - by="species0") %>% - left_join(traits %>% - dplyr::select(species0, starts_with("ROS_T")) %>% - mutate(ROS_T=ROS_T_Ganzrosettenpflanzen) %>% - mutate(ROS_T=replace(ROS_T, - list=ROS_T_Halbrosettenpflanze==1, - values=0.5)) %>% - mutate(ROS_T=replace(ROS_T, - list=ROS_T_rosettenlose.Pflanzen==1, - values=0)) %>% - dplyr::select(species0, ROS_T), - by="species0") +traits <- recode.traits(traits) + ### ordered factors @@ -279,8 +286,9 @@ env <- env %>% ##export for Valerio write_delim(species, path="_data/Mesobromion/species.out.10perc.txt", delim="\t") -write_delim(traits, path="_data/Mesobromion/traits.out.10perc.txt", delim="\t") -write_delim(env, path="_data/Mesobromion/env.10perc.txt", delim="\t") +write_delim(traits, path="_data/Mesobromion/traits.out.10perc.cov.txt", delim="\t") +write_delim(env, path="_data/Mesobromion/env.10perc.cov.txt", delim="\t") + ## version without missing species empty <- which(colSums(species[,-1])==0) @@ -290,13 +298,54 @@ species_nozero <- species[,-(empty+1)] write_delim(species_nozero , path="_data/Mesobromion/species.out.10perc_nozero.txt", delim="\t") write_delim(traits_nozero, path="_data/Mesobromion/traits.out.10perc_nozero.txt", delim="\t") - write_delim(species %>% dplyr::select(RELEVE_NR), path="_derived/Mesobromion/ReleveList.txt", delim="\t") - - +### version with cover values ### 4/08/2020 +species.proz <- read_csv("_data/Mesobromion/GVRD_Mes2_proz.csv", locale = locale(encoding = 'latin1')) +species.proz$RELEVE_NR <- env0$RELEVE_NR +species.proz <- species.proz %>% + filter(RELEVE_NR %in% (species %>% pull(RELEVE_NR))) %>% + #transform percentage cover to relative.cover + mutate(sumVar = rowSums(.[-1])) %>% + mutate_at(.vars=vars(-RELEVE_NR), + .funs=~./sumVar) %>% + dplyr::select(-sumVar) %>% + ## delete species not appearing in any plot + dplyr::select(colnames(.)[which(colSums(.)!=0)]) +dim(species.proz) #[1] 558 533 +write_delim(species.proz , path="_data/Mesobromion/species.out.10perc.cov.txt", delim="\t") + +## align traits to species in species.proz +traits.proz <- recode.traits(all.traits) +traits.proz <- data.frame(species=colnames(species.proz)[-1] ) %>% + ### clean species names in both data.frames + mutate(species0=as.character(species)) %>% + rowwise() %>% + # quick and dirty clean up names + mutate(species=gsub(pattern="_agg_|_x_|_spec$|_agg$|_s_|_Sec_|__", replacement="_", x=species)) %>% + mutate(species=gsub(pattern="_$", replacement = "", x = species)) %>% + mutate(species=ifelse(is.na(word(species, 1, 2)), species, word(species, 1, 2))) %>% + ungroup() %>% + left_join(traits.proz %>% + mutate(species=species0) %>% + rowwise() %>% + mutate(species=gsub(pattern="_agg_|_x_|_spec$|_agg$|_s_|_Sec_|__", replacement="_", x=species)) %>% + mutate(species=gsub(pattern="_$", replacement = "", x = species)) %>% + mutate(species=ifelse(is.na(word(species, 1, 2)), species, word(species, 1, 2))) %>% + ungroup() %>% + dplyr::select(-species0), + by="species") %>% + dplyr::select(-species) %>% + dplyr::select(`species0`, everything()) + +##check for species without trait info +traits.proz %>% + filter_at(.vars=vars(-"species0"), + all_vars(is.na(.))) %>% + dim() ## [1] 16 53 # species with no trait info +write_delim(traits.cov, path="_data/Mesobromion/traits.out.10perc.cov.txt", delim="\t") #### CORRELATION BETWEEN FUZZY WEIGHTED AND BEALS MATRICES #### WAS RUN IN THE CLUSTER WITH THE SCRIPT 01b_MesobromionCluster.R -- GitLab