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