From a1b4c84c8ef5fe54e4e9772fba463973e2343f48 Mon Sep 17 00:00:00 2001
From: Francesco Sabatini <francesco.sabatini@idiv.de>
Date: Tue, 25 Aug 2020 15:18:48 +0200
Subject: [PATCH] Fixed bug in 00 and cleaned and renamed traits

---
 00_Mesobromion_DataPreparation.R | 44 ++++++++++++++++++++++++--------
 1 file changed, 34 insertions(+), 10 deletions(-)

diff --git a/00_Mesobromion_DataPreparation.R b/00_Mesobromion_DataPreparation.R
index 9541231..301734e 100644
--- a/00_Mesobromion_DataPreparation.R
+++ b/00_Mesobromion_DataPreparation.R
@@ -144,18 +144,18 @@ dim(species) # [1] 5810 873
 releve08trait <- species %>% 
   rownames_to_column("RELEVE_NR") %>% 
   reshape2::melt(.id="RELEVE_NR") %>% 
-  rename(species0=variable, pres=value) %>% 
+  rename(species0=variable, perc.cover=value) %>% 
   as.tbl() %>% 
-  filter(pres>0) %>% 
+  filter(perc.cover>0) %>% 
   arrange(RELEVE_NR)  %>% 
   ## attach traits 
   left_join(traits %>% 
               dplyr::select(-species), by="species0") %>% 
   mutate_at(.vars = vars(LEB_F_Makrophanerophyt:Disp.unit.leng), 
-            .funs = list(~if_else(is.na(.),0,1) * pres)) %>%
+            .funs = list(~if_else(is.na(.),0,1) * perc.cover)) %>%
   group_by(RELEVE_NR) %>%
   summarize_at(.vars= vars(LEB_F_Makrophanerophyt:Disp.unit.leng),
-               .funs = list(~mean(.))) %>%
+               .funs = list(~sum(.)/sum(perc.cover))) %>%
   dplyr::select(RELEVE_NR, order(colnames(.))) %>%
   reshape2::melt(id.vars="RELEVE_NR", value.name="trait.coverage") %>% 
   group_by(RELEVE_NR) %>% 
@@ -163,6 +163,7 @@ releve08trait <- species %>%
   #select only those releves where we have a coverage of >0.8 for all traits
   filter(ntraits08==1) %>% 
   pull(RELEVE_NR)
+length(releve08trait) #[1] 5646
 
 set.seed(1984)
 releve08trait.samp <- sample(releve08trait, round(length(releve08trait)/10), replace=F)
@@ -253,14 +254,36 @@ recode.traits <- function(x){
 }
 traits <- recode.traits(traits)
 
+### Some cleaning and renaming of traits; exclude CSR - decisions 25.08.2020
+traits <- traits %>% 
+  dplyr::select(-STRAT_T) %>% 
+  mutate(REPR_T=factor(REPR_T, levels=c("Samen_Sporen","vegetativ"), 
+                       labels=c("Seed/Spores", "Vegetative"))) %>% 
+  mutate(BLU_KL=factor(BLU_KL, levels=c("NEKTAR_HONIG_INSEKTEN","POLLEN", "WIND"), 
+                       labels=c("Nectar/Honey/Insects", "Pollen", "Wind"))) %>% 
+  mutate(BL_AUSD = factor(BL_AUSD, 
+                          levels=c("immergrün","sommergrün","überwinternd_grün", "vorsommergrün"),
+                          labels=c("eg", "sg", "wg", "se")))
+
+##rename traits based on labels
+trait.labs <- data.frame(trait.name=colnames(traits)[-1]) %>% 
+  left_join(read_delim("_data/Mesobromion/TraitLabels_Long.csv", delim=","), 
+            by="trait.name") %>% 
+  rownames_to_column("Trait.comb") %>% 
+  mutate_at(.vars=vars(Short_english_name:Long_English_name), ~ifelse(is.na(.), trait.name, {.})) %>% 
+  filter(trait.name %in% colnames(traits))
+
+traits <- traits %>% 
+  rename_at(trait.labs$trait.name, .funs=function(x) trait.labs$Short_english_name)
+
 ##exclude traits being all == 0
 traits <- traits %>% 
-  dplyr::select(-colnames(.)[which(colSums(.!=0)==0)])
+  dplyr::select(-colnames(.)[which(colSums(.!=0)==0)]) 
 
 
-dim(species) #581 509
-dim(traits) #509 49
-dim(env) #581 8
+dim(species) #565 488
+dim(traits) #488 50
+dim(env) #565 8
 
 
 
@@ -319,9 +342,10 @@ species.cov <- species.cov %>%
   mutate_at(.vars=vars(-RELEVE_NR), 
             .funs=~./sumVar) %>% 
   dplyr::select(-sumVar) 
-dim(species.cov) #[1] 581 510
+dim(species.cov) #[1] 565 489
 
 ## export
+write_delim(species, path="_data/Mesobromion/species.v2.10perc.percentage.txt", delim="\t") ## original covere values
 write_delim(species.pa, path="_data/Mesobromion/species.v2.10perc.pa.txt", delim="\t")
 write_delim(species.cov, path="_data/Mesobromion/species.v2.10perc.cov.txt", delim="\t")
 write_delim(traits, path="_data/Mesobromion/traits.v2.10perc.txt", delim="\t")
@@ -342,7 +366,7 @@ traits %>%
 traits %>% 
   filter_at(.vars=vars(-"species0"), 
             any_vars(is.na(.))) %>% 
-  nrow() ## [1] 36 # species with at least 1 NA in traits
+  nrow() ## [1] 47 # species with at least 1 NA in traits
 
 
 #### CORRELATION BETWEEN FUZZY WEIGHTED AND BEALS MATRICES
-- 
GitLab