From c1f407ecaf19f64dd159a565d9160d9497c00beb Mon Sep 17 00:00:00 2001
From: fhui28 <fhui28@gmail.com>
Date: Fri, 16 Aug 2013 20:38:43 +1000
Subject: [PATCH] changes to merge canada

---
 merge.data.CANADA-fhv1.R | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/merge.data.CANADA-fhv1.R b/merge.data.CANADA-fhv1.R
index fd5496d..80e0699 100644
--- a/merge.data.CANADA-fhv1.R
+++ b/merge.data.CANADA-fhv1.R
@@ -38,8 +38,12 @@ data.canada$dead <- rep(NA,length(data.canada[["Species"]])) ## dummy variable f
 data.canada$sp <- as.character(data.canada[["Species"]]) ## species code
 data.canada$plot <- (data.canada[["PlotID"]]) ## plot code
 data.canada$htot <- rep(NA,length(data.canada[["Species"]]))## height of tree in m / missing
-get.treeid <- function(x) { out <- strsplit(x,"_")[[1]]; out <- out[length(out)]; return(out) }
-data.canada$tree.id <- sapply(data.canada$PLOTTREE,get.treeid) ## tree unique id
+data.canada$tree.id <- data.canada$PLOTTREE ## tree unique id
+data.canada$sp.name <- NA; 
+for(i in 1:length(unique(data.canada$sp))) { 
+	v <- species.clean$SPCD
+	data.canada$sp.name[which(data.canada$sp == unique(data.canada$sp)[i])] <- species.clean$COMMON_NAME[which(v == unique(data.canada$sp)[i])] }
+
 
 ############################
 ## merge greco to have no ecoregion with low number of observation
@@ -77,8 +81,8 @@ data.canada$perc.dead <- NA
 # table(data.canada$Mortality_Cut)
 # data.canada <- subset(data.canada,subset= (data.canada[["Mortality_Cut"]] == 0 |  data.canada[["Mortality_Cut"]] == ""))
 
-colnames(data.canada)[c(2,5,10)] <- c("sp","plot","w")
-vec.abio.var.names <-  c("MAT","PP","PET")
+colnames(data.canada)[c(2,5,10,12,14)] <- c("sp","plot","w","ecocode","PP")
+vec.abio.var.names <-  c("MAT","PP")
 vec.basic.var <-  c("tree.id","sp","sp.name","plot","ecocode","D","G","dead","year","htot","Lon","Lat","perc.dead")
 data.tree <- subset(data.canada,select=c(vec.basic.var,vec.abio.var.names))
 
@@ -90,20 +94,20 @@ data.BA.SP <- BA.SP.FUN(id.tree=as.vector(data.canada[["tree.id"]]), diam=as.vec
 	weights=1/(10000*data.canada[["SubPlotSize"]]), weight.full.plot=NA)
 
 ## change NA and <0 data for 0
-data.BA.SP[which(is.na(data.BA.SP),arr.ind=TRUE)] <- 0
-data.BA.SP[,-1][which(data.BA.SP[,-1]<0,arr.ind=TRUE)] <- 0
+data.BA.SP[is.na(data.BA.SP)] <- 0
+data.BA.SP[,-1][data.BA.SP[,-1]<0] <- 0
 
 ### CHECK IF sp and sp name for column are the same
-if(sum(! (names(data.BA.SP)[-1] %in% unique(dataIFN.spain[["sp"]]))) >0) stop("competition index sp name not the same as in data.tree")
+if(sum(!(names(data.BA.SP)[-1] %in% unique(data.canada[["sp"]]))) >0) stop("competition index sp name not the same as in data.tree")
 
 #### compute BA tot for all competitors
 BATOT.COMPET <- apply(data.BA.SP[,-1],MARGIN=1,FUN=sum,na.rm=TRUE)
-data.BA.SP$BATOT.COMPET <- BATOT.COMPET
+data.BA.SP$BATOT.COMPET <- BATOT.COMPET; rm(BATOT.COMPET)
 ### create data frame
 names(data.BA.SP) <- c("tree.id",names(data.BA.SP)[-1])
-data.BA.sp <- merge(data.frame(tree.id=dataIFN.spain[["tree.id"]],ecocode=dataIFN.spain[["ecocode"]]),data.BA.SP,by="tree.id",sort=FALSE)
+data.BA.sp <- merge(data.frame(tree.id=data.canada[["tree.id"]],ecocode=data.canada[["ecocode"]]),data.BA.SP,by="tree.id",sort=FALSE)
 ## test
-if( sum(! data.BA.sp[["tree.id"]] == data.tree[["tree.id"]]) >0) stop("competition index not in the same order than data.tree")
+if(sum(!data.BA.sp[["tree.id"]] == data.tree[["tree.id"]]) >0) stop("competition index not in the same order than data.tree")
 
 ## save everything as a list
 list.spain <- list(data.tree=data.tree,data.BA.SP=data.BA.sp,data.traits=data.traits)
-- 
GitLab