问题:当子代测定林存活率较低时,实际密度就会有较大的变化,因此测定效果就不够准确,如何解决密度不一致的问题?考虑给每个个体添加一个密度系数来矫正密度,不知可行与否。下面代码是用于密度系数的计算。代码比较笨,没有足够的时间来学习提高代码的执行效率,any way,能正确计算出来就够了。

0.1 计算密度系数

# 载入数据
load("D:/R/Spatial_Compete/8801_with_grid.RData")
df <- X8801_with_grid[1:20,]
df <- as.data.frame(df)

## 坐标
# r+1,c-1  r+1,c  r+1,c+1
# r,c-1  r,c  r,c+1
# r-1,c-1  r-1,c  r-1,c+1

# loop
for(i in 1:dim(df)[1]){
r=df$Row[i];c=df$Col[i]

if(nrow(df[df$Col==c&df$Row==r,])!=0) {

num_neib <- c(
nrow(df[df$Col==c&df$Row==r-1,])==0,
nrow(df[df$Col==c+1&df$Row==r-1,])==0,
nrow(df[df$Col==c-1&df$Row==r-1,])==0,

nrow(df[df$Col==c-1&df$Row==r,])==0,
nrow(df[df$Col==c+1&df$Row==r,])==0,

nrow(df[df$Col==c&df$Row==r+1,])==0,
nrow(df[df$Col==c+1&df$Row==r+1,])==0,
nrow(df[df$Col==c-1&df$Row==r+1,])==0)

df$space_indx[i] <- length(num_neib[num_neib==F])
}else{
  df$space_indx[i] <- NA
}
cat(i,"\n")
}
## 1 
## 2 
## 3 
## 4 
## 5 
## 6 
## 7 
## 8 
## 9 
## 10 
## 11 
## 12 
## 13 
## 14 
## 15 
## 16 
## 17 
## 18 
## 19 
## 20
knitr::kable(head(df))
Treeid Mum Dad Fam Rep Col Row h dbh notes space_indx
81514 35 NA 1 1 36 36 NA NA NA 5
81515 35 NA 1 1 36 37 NA NA NA 4
81458 35 NA 1 1 35 34 15.0 14.0 NA 5
81512 35 NA 1 1 36 34 17.5 15.9 NA 3
81406 35 NA 1 1 34 34 17.7 15.2 NA 5
81358 35 NA 1 1 33 38 NA NA NA 1