Este código de R corresponde a la figura 6.11 del libro Análisis de datos con el programa estadístico R: una introducción aplicada de Salas-Eljatib (2021). | |
Última actualización de esta web: 13 noviembre, 2022
Ocuparemos la dataframe pspRuca del paquete datana de Salas-Eljatib, Riquelme, and Pino (2021).
> library(datana)
> data(pspRuca)
> df <- pspRuca
> head(df) #primeras seis filas
tree.no spp status dbh x.coord y.coord crown.class
1 1 N. obliqua 1 65.50 2.7282 0.62986 1
2 2 A. punctatum 1 75.90 9.1970 4.30179 1
3 3 A. punctatum 1 44.10 17.1026 0.62677 1
4 4 E. cordifolia 1 135.75 20.0614 0.57813 1
5 5 A. punctatum 1 78.25 3.9795 2.20588 1
6 6 N. obliqua 1 91.80 5.1683 1.88111 1
> nrow(df) #numero de filas de la dataframe
[1] 716
Esta dataframe contiene la informacion de coordenadas cartesianas de arboles en una parcela de muestreo de 10.000 m\(^2\) (1 hectárea) en un bosque adulto de Olivillo-Roble-Laurel-Ulmo en el predio Rucamanque (Depresion intermedia de la region de la Araucania, Chile). Los datos fueron recolectados por Salas et al. (2006).
En el libro se muestran dos gráficos sobre funciones de de densidad (o ``Kernel’’) para la distribucion espacial de árboles en un bosque nativo en Chile. La estimacion de densidad por funciones Kernel es una alternativa de modelacion en análisis espacial que toma en consideracion la posicion de elementos en relacion a otros Schabenberger and Gotway (2005).
Para realizar esta figura del libro es necesario tambien cargar los siguientes paquetes
> library(splancs)
> library(spatstat)
Es recomendable tambien instalar el paquete geoR Ribeiro and Diggle (2001).
> range.x<-c(0,100);range.y<-c(0,100)
> plot.area<-max(range.x)*max(range.y)
> # grupo 1: arboles del dosel superior y vivos
> db.g1 <- df[df[,"crown.class"]==1&df[,"status"]==1,]
> db.g1.pts <- as.points(db.g1[,"x.coord"],db.g1[,"y.coord"])
> db.g1.ppp <- ppp(db.g1.pts[,1],db.g1.pts[,2],xrange=range.x,yrange=range.x)
> # ----------
> #estimacion de la densidad kernel para grupo 1
> dens.g1.sig2<-density.ppp(db.g1.ppp,sigma=3.5,dimyx=c(max(range.x),max(range.y)))
> persp(dens.g1.sig2,theta=45,phi=5,xlab="X",ylab="Y",zlab="Z",cex.lab=1.5,main="", col="yellow")
> # grupo 2: arboles del dosel inferior y muertos en pie
> db.g2<-df[df[,"crown.class"]==3&df[,"status"]==2,]
> db.g2.pts<-as.points(db.g2[,"x.coord"],db.g2[,"y.coord"]);
> db.g2.ppp=ppp(db.g2.pts[,1],db.g2.pts[,2],xrange=range.x,yrange=range.x)
> # ----------
> #estimacion de la densidad kernel para grupo 2
> dens.g2.sig2<-density.ppp(db.g2.ppp,sigma=3.5,dimyx=c(max(range.x),max(range.y)))
> persp(dens.g2.sig2,theta=45,phi=45,xlab="X",ylab="Y",zlab="Z",cex.lab=1.5,main="",col="aquamarine")
Cualquier error que encuentre en este ejemplo, comentario o sugerencia, no dude en contactarme vía e-mail. Muchas gracias desde ya.
geoR
: A Package for Geostatistical
Analysis.” R News 1 (2): 14–18.
datana
: Data and functions to
accompany Análisis de datos con el programa
estadístico R: una introducción aplicada. https://cran.r-project.org/package=datana.