R语言计算多元分布频率
library(spatstat)
library(forestSAS)
treedataX <- read.table("D:/R-data/treedataX.txt", header=T,sep="\t")
treedataX
tree.pppX <- ppp(x=treedataX$x,y=treedataX$y,window=owin(c(0,30),c(0,25)),marks=treedataX[,c(1,4:11)])
tree.pppX
nnsp.N4 <- nnIndex(tree.pppX,id= tree.pppX$marks$tree.id, N=4,smark="sp.code",buffer=TRUE)
nnsp.N4
summary(nnsp.N4)
nnMarks.N4 <- nnIndex(tree.pppX,id=tree.pppX$marks$tree.id,N=4,smark=c("dbh.cm","h.m","storey"),buffer=TRUE)
summary(nnMarks.N4)
nnsp.R2 <- nnIndex(tree.pppX,id=tree.pppX$marks$tree.id,R=2,smark="sp.code",buffer=TRUE)
summary(nnsp.R2)
nnMarks.R2 <- nnIndex(tree.pppX,id=tree.pppX$marks$tree.id,R=2,smark=c("dbh.cm","h.m","storey"),buffer=TRUE)
summary(nnMarks.R2)
nnindices <- nnIndex(tree.pppX,N=4,id=tree.pppX$marks$tree.id,smark=c("sp.code","dbh.cm","storey","crownwid.m","group","biomass.kg","quality","x","y"),buffer=FALSE,buf.xwid=5,buf.ywid=5)
summary(nnindices)
M <- fsasN4(nnindices$nnsp.code,match.fun=mingling)
H <- fsasN4(nnindices$nnstorey,match.fun=differ)
S <- fsasN4(nnindices$nngroup,match.fun=ideal,para="Climax")
Q <- fsasN4(nnindices$nnquality,match.fun=ideal,para=c("Excellent","Good"))
C <- fsasN4(nnoverlap(nnindices$nncrownwid.m,nnindices$nndist),match.fun=crowding)
W <- fsasN4(nnangle(nnindices$nndist,nnindices$nnx, nnindices$nny)$nnangle,match.fun=uniform.angle,para=72)
U <- fsasN4(nnindices$nndbh.cm,match.fun=dominance)
B <- fsasN4(nnindices$nnbiomass.kg,match.fun=dominance)
#绘制一元频率分布柱状图
M
barplot( M$Ifreq,xlab="树种混交度 Species mingling (M)",ylab="相对频率 Relative frequency")
barplot( U$Ifreq,xlab="树种大小比数 Species dominance (U)",ylab="相对频率 Relative frequency")
barplot( C$Ifreq,xlab="树种密集度 Species crowding (C)",ylab="相对频率 Relative frequency")
barplot( W$Ifreq,xlab="树种角尺度 Species uniform.angle (W)",ylab="相对频率 Relative frequency")
#一元分布频率
freqU <- table(W$result$index)
freqU <- freqU/sum(freqU)
frameU <- data.frame(freqU)
frameU
#二元分布频率
WUdatanobuffer <- data.frame(Wi=W$result$index, Ui=U$result$index)
freqWU <- table(WUdatanobuffer)
freqWU <- freqWU/sum(freqWU)
frameWU <- data.frame(freqWU)
frameWU
#三元分布频率
tridatanobuffer <- data.frame(Wi=W$result$index, Ui=U$result$index, Ci=C$result$index)
trifreq <- table(tridatanobuffer)
trifreq <- trifreq/sum(trifreq)
trifreq <- data.frame(trifreq)
trifreq
#四元分布频率
quadatanobuffer <- data.frame(Wi=W$result$index, Ui=U$result$index, Ci=C$result$index, Mi=M$result$index)
quafreq <- tabke(quadatanobuffer)
quafreq <- quafreq/sum(quafreq)
quafreq <- data.frame(quafreq)
quafreq
明明很简单,但是数学差的就是想不到