## Script: recordando.R ## Sobre?: recordando el uso de R, ## desde lo basico a ajuste de modelo de regresion ## ## Prof. christian salas eljatib ## E-mail: cseljatib AT gmail DOT com ## Web: https://eljatib.com #====================================== Loblolly head(Loblolly) help("Loblolly") #numero de filas nrow(Loblolly) df <- Loblolly head(df) #cambiar los nombres de las columnas names(df) names(df) <- c("h","t","semilla") head(df) names(df) <- c("altura","edad","semilla") head(df) #calcular nuevas variables df$h <- df$altura*.3048 head(df) ##guardar un archivo fisico getwd() write.csv(df, file="midf.csv") list.files() ##para cambiar el directorio de trabajo ##recuerde que debe ser dependiente de como se escribe # la ruta al directorio en su sistema operativo, yo muestro # como lo escribo en linux #setwd("/home/christian/biomfor/") # getwd() ## str(df) class(df) class(df$h) class(df$semilla) levels(df$semilla) ##anidar funciones length( levels(df$semilla) ) luis <- levels(df$semilla) length(luis) #guardar el numero de semillas en los datos numsemi<-length( levels(df$semilla) ) numsemi ##crear otra columna con logaritmo natural de h df$ln.h <- log(df$h) head(df) #estadistica descriptiva summary(df$h) #de la altura, en metros summary(df$edad) #de la edad, en anhos ##dividir dataframe segun una variable continua #1) solo registros con altura mayor a 10m df1 <- subset(df, h>10) nrow(df1) #2) solo registros con edad mejor o igual a 13 anhos df2 <- subset(df, edad<=13) nrow(df2) #3) dividir en base a dos filtros #edad menor o igual a 13 anhos y altura menor a 8m df3 <- subset(df, edad<=13 & h<8) nrow(df3) #hasta he pedido la condicion logica: Y #ahora mostrare la condicion logica: O #4) dividir en base a dos filtros, continua y factor #altura menor a 8m O semilla 323 df4 <- subset(df, h<8 | semilla=="323") nrow(df4) ##estad. para mas de una columna summary( df[ , c("h","edad") ] ) tapply(df$altura,df$semilla,mean) tapply(df$h,df$semilla,sd) tapply(df$h,df$semilla,length) ##grafico hist(df$h) hist(df$edad) require(lattice) histogram(~h|semilla, data=df) plot(h ~ edad, data=df) xyplot(h~edad|semilla, data=df) #ajustar un modelo estadistico del tipo #h_i=beta.0+beta.1(edad_i)+error_i, # donde error_i se distribuye con pdf Gauss con # valor esperado=0 y varianza=sigma_error^2 m1<- lm(h ~ edad, data=df) summary(m1) #@@@@@@@@@@@@@@@@@ #Ud ha llegado al final de este script! #C #@@@@@@@@@@@@@@@@@