#lo asigno a un vector de la distribución estable
#de edades (o estadios)
dee<--Re(vp.aphis$vectors[,1])
#normalizo el dee para que la suma sea 1.
dee<-dee/sum(dee)
#lo despliego
dee
#calcular la proporción de individuos por tiempo
total<-sum(res[,700])
#esta es la proporción de individuos asintótica
res[,700]/total
#lo despliego
dee
#animación de la distribución de edades
#ya tengo la matriz res
#ahora quiero otra matriz. del mismo tamaño
#pero con las proporciones
#y luego graficar cada tiempo
prdi<-colSums(res,1)
#animación de la distribución de edades
#ya tengo la matriz res
#ahora quiero otra matriz. del mismo tamaño
#pero con las proporciones
#y luego graficar cada tiempo
tot.t<-colSums(res,1)
#ahora calculo las proporciones
prdi<-res/tot.t
prdi[,1:5]
#ahora calculo las proporciones
prdi<-res*(1/tot.t)
prdi[,1:5]
#ahora calculo las proporciones
for(t in 1:1000){
prdi[,t]<-res[,t]/tot.t[t]
}
prdi[,1:5]
#ahora calculo las proporciones
prdi<-matrix(0,nrow=6,ncol=1000)
for(t in 1:1000){
prdi[,t]<-res[,t]/tot.t[t]
}
barplot(prdi[,1])
barplot(prdi[,10])
#animacion de la distribución de edades
for (t in 1:10){
barplot(prdi[,t])
}
#animacion de la distribución de edades
for (t in 1:10){
barplot(prdi[,t])
Sys.sleep(1)
}
#animacion de la distribución de edades
for (t in 1:10){
barplot(prdi[,t])
}
barplot(prdi[,1]
)
barplot(prdi[,10])
barplot(prdi[,50])
barplot(prdi[,60])
barplot(prdi[,100])
barplot(prdi[,200])
barplot(prdi[,100])
barplot(prdi[,50])
barplot(prdi[,10])
#ingresar la matriz desde hoja de calculo
ds<-read.table("clipboard",header=FALSE)
#transformo el data.frame en una matriz
ds<-as.matrix(ds)
#utilizar la instrucción eigen para obtener
#tanto los valores como los vectores propios
vpds<-eigen(ds)
#reviso los nombres de la lista
names(vpds)
#ahora voy a extraer el valor propio dominante
#(lambda) tasa de crecimiento
vpds$values
#ahora voy a extraer el valor propio dominante
#(lambda) tasa de crecimiento
vpds$values[1]
#ahora voy a extraer el valor propio dominante
#(lambda) tasa de crecimiento
Re(vpds$values[1])
#ahora voy a extraer el valor propio dominante
#(lambda) tasa de crecimiento
lambda<-Re(vpds$values[1])
#ahora voy a extraer el vector propio dominante
#(distribución estable de estadios)
vpds$vectors
#ahora voy a extraer el vector propio dominante
#(distribución estable de estadios)
vpds$vectors[,1]
#ahora voy a extraer el vector propio dominante
#(distribución estable de estadios)
Re(vpds$vectors[,1])
#ahora voy a extraer el vector propio dominante
#(distribución estable de estadios)
dee<-Re(vpds$vectors[,1])
#ahora normalizo a suma 1
dee<-dee/sum(dee)
dee
#grafico de barras con la dee
barplot(dee)
prcomp(ds)
#########################
## valor reproductivo
#########################
t(ds)
#########################
## valor reproductivo
#########################
vpi.ds<-eigen(t(ds))
vpi.ds$values
vpi.ds$vectors
#los vectores propios si cambian
vr<-vpi.ds$vectors[,1]
#los vectores propios si cambian
vr<-Re(vpi.ds$vectors[,1])
vr
#voy a normalizar tal que el elemento más
#grande del vector sea la unidad
vr/vr[1]
#voy a normalizar tal que el elemento más
#grande del vector sea la unidad
vr/max(vr)
library(rgdal)
library(gdalUtils)
gdal_chooseInstallation(hasDrivers=c("HDF4","HDF5"))
library(gdal)
install.packages("gdal")
library(hdf5r)
test_filename<-tempfile(fileext = ".h5")
file.h5<-H5File$new(test_filename, mode = "w")
file.h5
mtcars.grp<-file.h5$create_group("mtcars")
flights.grp<-file.h5$create_group("flights")
library(datasets)
library(nycflights13)
nycfligths
nycflights13
#mi matriz de Leslie es
m1<-c(2,2,2,5)
m1<-matrix(m1,nrow=2,byrow=TRUE)
m1
#calculo la tasa de crecimiento (valor propio dominante)
lambda1<-eigen(m1,only.values=T)
#extraigo el valor propio dominante
lambda1<-lambda1$values[1]
#ahora vamos a cambiar un elemento de la matriz
#para calcular la tasa de cambio de lambda como
#función de esta entrada de la matriz de Leslie.
m2<-c(2,2,2,5.1)
m2<-matrix(m2,nrow=2,byrow=T)
#calculo la tasa de crecimiento (valor propio dominante)
lambda2<-eigen(m2,only.values=T)
#extraigo el valor propio dominante
lambda2<-lambda2$values[1]
#la tasa de cambio, que es la pendiente, que es la
#derivada de la recta
#que pasa por los puntos que hemos calculado
t1<-(lambda2-lambda1)/(5.1-5)
########################
#ahora la sensibilidad _ con respecto a la fertilidad
#de la segunda categoria
m3<-c(2,2.1,2,5)
#lo convierto en matriz
m3<-matrix(m3,nrow=2,byrow=T)
#calculo la tasa de crecimiento (valor propio dominante)
lambda3<-eigen(m3,only.values=T)
#extraigo el valor propio dominante
lambda3<-lambda3$values[1]
#la tasa de cambio, que es la pendiente, que es la
#derivada de la recta
#que pasa por los puntos que hemos calculado
t2<-(lambda3-lambda1)/(2.1-2)
########################
#ahora la sensibilidad _ con respecto a la fertilidad
#de la segunda categoria
m3<-c(2,2.01,2,5)
#lo convierto en matriz
m3<-matrix(m3,nrow=2,byrow=T)
#calculo la tasa de crecimiento (valor propio dominante)
lambda3<-eigen(m3,only.values=T)
#extraigo el valor propio dominante
lambda3<-lambda3$values[1]
#la tasa de cambio, que es la pendiente, que es la
#derivada de la recta
#que pasa por los puntos que hemos calculado
t2<-(lambda3-lambda1)/(2.01-2)
########################
#ahora la sensibilidad _ con respecto a la fertilidad
#de la segunda categoria
m3<-c(2,2.001,2,5)
#lo convierto en matriz
m3<-matrix(m3,nrow=2,byrow=T)
#calculo la tasa de crecimiento (valor propio dominante)
lambda3<-eigen(m3,only.values=T)
#extraigo el valor propio dominante
lambda3<-lambda3$values[1]
#la tasa de cambio, que es la pendiente, que es la
#derivada de la recta
#que pasa por los puntos que hemos calculado
t2<-(lambda3-lambda1)/(2.001-2)
1:0.2:5
seq(from=1,to=5,by=0.2)
length(seq(from=1,to=5,by=0.2))
seq(from=1,to=5,length.out = 20)
seq(from=1,to=5,by=0.2)
seq(from=12.34,to=23.11,by=0.2)
seq(from=12.34,to=23.11,length.out=150)
1:5
1:0.1:5
rep(0,5)
rep(0,times=5)
rep(x=0,times=5)
rep(x=a,times=5)
rep(x="a",times=5)
rep(x=m1,times=5)
rep(x=m1,each=5)
##################
## curva de lambda con respecto a stasis2
rep2=rep(0,21)
lambda=rep(0,21)
##################
## curva de lambda con respecto a stasis2
rep2<-[]
##################
## curva de lambda con respecto a stasis2
rep2<-c()
lambda<-c()
rep2
c(rep2,1)
c(rep2,5)
##################
## curva de lambda con respecto a stasis2
rep2<-c()
rep2<-c(rep2,1)
rep2<-c(rep2,5)
rep2<-c(rep2,6)
rep2<-c(rep2,0.5)
##################
## curva de lambda con respecto a stasis2
rep2<-c()
lambda<-c()
for (i in seq(from=1,to=5,by=0.2)){
m<-c(2,i,2,5)
m<-matrix(m,nrow=2,byrow=T)
l<-eigen(m,only.values = T)
l<-l$values[1]
rep2<-c(rep2,i)
lambda<-c(lambda,l)
}
rep2
lambda
#la grafica de la curva de lambda como función de rep2
plot(rep2,lambda)
#1 a partir de la matriz de Leslie original,
#calcular valores y vectores propios
vp=eigen(m)
b
#1 a partir de la matriz de Leslie original,
#calcular valores y vectores propios
vp<-eigen(m)
#1 a partir de la matriz de Leslie original,
#calcular valores y vectores propios
vp<-eigen(m1)
#1 a partir de la matriz de Leslie original,
#calcular valores y vectoresm
m
solve(m)
solve(m1)
m.solve(m1)
m%*%solve(m1)
m1%*%solve(m1)
#el valor propio dominante, y su vector propio
#asociado, están ambos en la primera posición
#2 tomo la matriz de vectores propios y calculo la
#matriz inversa y luego el cojugado complejo de
#lo anterior
V<-Conj(solve(vp$vectors))
v
V
#nos quedmos con la parte real de la columna
#que le corresponde al valor propio dominant
#(primera columna)
v<-V[,1]
w<-vp$vectors[,1]
#3
#multiplicar la V con los vectores propios transpuestos
sensi<-v*t(w)
#3
#multiplicar la V con los vectores propios transpuestos
sensi<-v%*%t(w)
sensi
View(sensi)
v
w
V
matrix(c(0, 2.,0.82,0.05),nrow=2,byrow=T)
m1<-matrix(c(0, 2.,0.82,0.05),nrow=2,byrow=T)
eigen(m1)
eigen(t(m1))
eigen(t(m1))$vectors
v1<-eigen(t(m1))$vectors
v1<-v1[,1]
v1
v1/max(v1)
-v1/max(v1)
v1/max(-v1)
m2<-matrix(c(0, 2,1,0.82,0,0,0,0.2,0.01))
m2
m2<-matrix(c(0, 2,1,0.82,0,0,0,0.2,0.01),nrow=3,byrow=T)
m2
v2<-eigen(t(m2))$vectors
v2<-v2[,1]
v2
-v2
(-v2)/max(-v2)
#mi matriz de Leslie es
m1<-c(2,2,2,5)
#1 a partir de la matriz de Leslie original,
#calcular valores y vectores propios
vp<-eigen(m1)
m1<-matrix(m1,nrow=2,byrow=TRUE)
#1 a partir de la matriz de Leslie original,
#calcular valores y vectores propios
vp<-eigen(m1)
#el valor propio dominante, y su vector propio
#asociado, están ambos en la primera posición
#2 tomo la matriz de vectores propios y calculo la
#matriz inversa y luego el conjugado complejo de
#lo anterior
V<-Conj(solve(vp$vectors))
#nos quedmos con la parte real de la columna
#que le corresponde al valor propio dominante
#(primera columna)
v<-V[,1]
w<-vp$vectors[,1]
#3
#multiplicar la V con los vectores propios transpuestos
sensi<-v%*%t(w)
sensi
#sensibilidad de la matriz de Dipsacus Silvestris corregida
#leer la matriz desde excel
dsc<-read.table("clipboard",header = F)
class(dsc)
#lo transformo en matriz
dsc<-as.matrix(dsc)
#primero obtengo los vectores propios derechos
vp.dsc<-eigen(dsc)
#la matriz de vectores propios la pongo en W
W<-vp.dsc$vectors
#reviso si el vector propio dominante está en un renglón
#o en una columna
W
#la primera columna me da la DEE
w<-W[,1]
#la primera columna me da la DEE
w<-Re(W[,1])
#la primera columna me da la DEE
w<- -Re(W[,1])
#ahora necesito vectores propios izquierdos
V^-1
#ahora necesito vectores propios izquierdos
V<-W^-1
W[1,1]
V[1,1]
1/W[1,1]
W%*%V
V2<-solve(W)
W%*%V2
#ahora necesito vectores propios izquierdos
V<-conj(solve(W))
#ahora necesito vectores propios izquierdos
V<-Conj(solve(W))
V
#esta en el primer renglón
#por lo tanto el vector del valor reproductivo es
V[1,]
#esta en el primer renglón
#por lo tanto el vector del valor reproductivo es
-V[1,]
#esta en el primer renglón
#por lo tanto el vector del valor reproductivo es
v<- -Re(V[1,])
#voy a revisar que el producto interno de v y w es uno
v%*%w
#mi matriz de sensibilidad es el producto externo de v,w
v.w
#mi matriz de sensibilidad es el producto externo de v,w
v*w
#mi matriz de sensibilidad es el producto externo de v,w
v%*%T(w)
#mi matriz de sensibilidad es el producto externo de v,w
v%*%t(w)
#mi matriz de sensibilidad es el producto externo de v,w
sensi<-v%*%t(w)
#1. leer datos desde excel
prsi<-read.table("clipboard",header=TRUE)
#1. leer datos desde excel
prsi<-read.table("clipboard",header=TRUE)
#2. diagrama de dispersión
plot(prsi)
#3 ajustar modelo de regresión lineal simple
reg<-lm(presion~edad,data=prsi)
#4. desplegar la salida de la regresión
summary(reg)
#5. Para el anova de la regresión
aov(reg)
#5. Para el anova de la regresión
anova(reg)
#primero leo los datos de una hoja de cálculo
st<-read.table("clipboard",header=TRUE)
#primero leo los datos de una hoja de cálculo
st<-read.table("clipboard",header=TRUE)
class(st)
#grafico los datos
plot(st)
res<-diff(st$serie)
#calcular la prueba del signo
#tengo que cargar el paquete BSDA
library(BSDA)
SIGN.test(res)
SIGN.test(res*-1)
pbinom(8,19,0.5)
pbinom(11,19,0.5)
pbinom(8,19,0.5)
datos<-read.table("clipboard",header=TRUE)
#cargo los datos desde la hoja de calculo
malec<-read.table("clipboard",header=T)
rm(datos)
#diagrama de dispersión
plot(malec$rehab,malec$trabajo)
#diagrama de dispersión
plot(malec$rehab,malec$trabajo,xlab="Rehabilitación",
ylab="Trabajo")
plot(malec$eval,malec$trabajo,xlab="Rehabilitación",
ylab="Trabajo")
# ajuste del plano de regresión múltiple
malec.regre<-lm(trabajo~eval+rehab,data=malec)
library(plot3D)
scatter3D(malec$eval,malec$rehab,malec$trabajo)
#desplegar la tabla de la regresión
summary(malec.regre)
anova(malec.regre)
qf(0.975,2,13)
presion<-read.table("clipboard",header=T)
plot(presion)
rls<-lm(presion~edad,data=presion)
abline(rls)
require(raster)
setwd("C:/Users/Derik/Google Drive/Investigacion/fuegos/conanp/fuegos/2010")
#ahora cargo un raster en memoria
rst<-raster("MCD64monthly.A2010121.Win04.006.burndate.tif")
#lo puedo graficar
plot(rst)
rst
#para ver los valores
values(rst)
#para ver los valores
unique(values(rst))
#lo puedo graficar
plot(rst,xlim=c(-110,-90))
#lo puedo graficar
plot(rst,xlim=c(-110,-90),ylim=c(15,25))
require(rgdal)
root<-"C:/Users/Derik/Google Drive/Investigacion/fuegos/conanp/shapefile/SHAPE_ANPS"
paste(root,nom)
#nombre del shapefile
nom<-"182ANP_Geo_ITRF08_Julio04_2019.shp"
paste(root,nom)
paste(root,nom,sep="/")
shp<-readOGR(paste(root,nom,sep="/"))
#puedo graficar el shapefile
plot(shp)
#para ver el contenido
shp
#puedo obtener la proyección o coordinate reference system
#(crs)
projection(rst)
projection(shp)
require(sp)
#cambiar de una proyección a otra
shp<-spTransform(shp,CRS("+proj=longlat +ellps=WGS84 +no_defs"))
projection(shp)
#como saco cada anp por separado. Lo trato un data.frame
shp[1,]
shp[,2]#obtener todos los nombres
shp[1:2,]#obtener todos los nombres
shp[1:2,2]#obtener todos los nombres
shp$NOMBRE#obtener todos los nombres
plot(shp[1])
plot(shp[1,])
#uso crop y uso mask para clip and mask. PRimero raster
#luego shp
rst2<-crop(rst,shp[1,])
plot(rst2)
rst2<-mask(rst2,shp[1,])
plot(rst2)
rm(rst2)
rst2<-mask(rst,shp[1,])
plot(rst2)
#uso crop y uso mask para clip and mask. PRimero raster
#luego shp
rst2<-crop(rst,shp[1,])
plot(rst2)
rst2<-mask(rst2,shp[1,])
plot(rst2)
require(sf)
st_transform(shp,CRS("+proj=longlat +ellps=WGS84 +no_defs"))
st_transform(shp,crs="+proj=longlat +ellps=WGS84 +no_defs")
