#Primeros pasos en R
#Los comandos que se tipeen en la consola son llamados expresiones. Una parte del sistema #R llamado interpretador leerá las expresiones y responderá con un resultado o un mensaje #de error.
#Un vector es una colección ordenada de números.
#Podemos construir grandes vectores usando la función c(…). #El “c” hace alusión a combinar.
c(1, 2, 875, 8, 835) + c(10, 100, 1000, 10000, 100000)
#También podemos introducir expresiones con caracteres.
“Me gusta el R” # Este puede ser llamado vector de caracteres.
#Las operaciones que hacen todo el trabajo son llamados “funciones” #f(argument1, argument2, …) Donde “f” es el nombre de la función, y “argument1, argument2, . . .” #son los arugumentos de la función.
log(x=64, base=4) log(64,4)
#El R es sensible a cualquier cambio asà que debemos ser cuidadosos a la hora #de introducir lo caracteres. Por ejemplo, el operador = no significa “igual”. #Para este necesitamos el operador ==
#En R el operador de asignación es “<-”.
uno <- 1 dos <- 2 uno = dos # Esto significa: “asignamos al valor de dos a la variable uno” uno dos
uno <- 1 dos <- 2 uno == dos #Esto significa: “el valor de un es igual a dos”
#También podemos invertir el orden. 3 -> TRES TRES
#Función simple f <- function(x,y) {c(x+20, y+10)} f(554,255)
#Las listas en R pueden contener una selección heterogénea de objetos. e <- list(ciclo=“verano”, semanas=“6”) e
e$semanas
#Un “data frame” o marco de datos es una lista que contiene múltiples vectores #que son de la misma longitud. No es como una hoja de cálculo. Es útil para #trabajar con data de nuestro interés.
candidatos<- c(“Guzmán”,“Del Solar”,“Urresti”,“Mendoza”,“Acuña”) edad <- c(52, 55, 60, 45, 57) sueldo<- c(35000, 20000, 25000, 13000, 15000) candidaturas <- data.frame(candidatos,edad,sueldo) candidaturas
candidaturas$edad
| #Ejemplo de modelos y fórmulas |
| y ~ x1 + x2 + … + xn carros <- lm(formula=dist~speed,data=cars) carros |
| summary(carros) |
| lm(dist~speed,data=cars) summary(lm(dist~speed,data=cars)) |
#El R incluye varios paquetes para visualizar data: graphics, grid, lattice, ggplot2, iPlots, etc.
| #Pidiendo ayuda |
?glm ?+ example(glm) help.search(“regression”) ??regression library(help=“grDevices”) |
| #Una viñeta (vignette) es un documento corto que describe cómo usar un paquete. #Trae ejemplos. |
| install.packages(“ggplot2”) vignette(“ggplot2-specs”) vignette(all=TRUE) #Para ver todas las viñetas que traen los paquetes instalados. |
| #Un paquete es un conjunto relacionado de funciones, documentos de ayuda y documentos #de datos que han sido puestos todos juntos. Cargar todos los paquetes tiene dos #inconvenientes: la pc se ralentiza y puede haber conflicto de comandos. |
| getOption(“defaultPackages”) # Los paquetes instalados por defecto. |
| (.packages()) # Todos los paquetes cargados |
| (.packages(all.available=TRUE)) # Muestra todos los paquetes disponibles |
| library() # Corta descripción de los paquetes disponibles |
#Explorando los depósitos de los paquetes
#Las dos grandes fuentes de paquetes son CRAN (Comprehensive R Archive Network) y Bioconductor. #El CRAN es financiada por la Fundación R, la misma que desarrolla el R.
install.packages(“quanteg”) install.packages(c(“tree”,“maptree”))
| #Valores especiales |
| NA #En el R los valores NA son usados para representar los valores perdidos. |
| #Si expandimos el tamaño de un vector (o una matriz) más allá de los valores #definidos, los nuevos espacios tendrán el valor NA (“no disponible”). |
| v <- c(1,2,3) v length(v) <- 4 v |
| #Inf y -Inf |
| #Si los resultados son muy grandes el R nos retornará un Inf para un número #positivo y un -Inf para un número negativo |
| 2 ^ 1024 - 2 ^ 1024 |
| #También lo tenemos cuando dividimos ante cero: 1 / 0 |
| NaN #Algunas veces, si el cálculo no tiene sentido, el R nos arrojará NaN como resultado #(“no es un número”) |
| Inf - Inf 0 / 0 |
| NULL #NULL es muy usado como argumento de las funciones para asignar que ningún #valor fue asignado como argumento. |
#SI USAS EL sav (del SPSS) library(foreign) #necesario para que funcione read.spss ejemplo<- read.spss(“Ejemplo.sav”,use.value.labels=TRUE, max.value.labels=Inf, to.data.frame=TRUE)
#SI USAS csv (grabado desde EXCEL) ejemplo2<-read.csv(“EDA.csv”)
#SI USAS rda (formato propio de R - igual que Rdata) load(“Lapop.rda”)
#OPERACIONES***************************************************** names(ejemplo.sav) #nombre de las variables en el archivo
install.packages(“Hmisc”) #instalando un paquete - indique de donde lo desea traer - solo una vez library(Hmisc) #activandolo
describe(ejemplo) #descripción de todas las variables describe(ejemplo) #decripcion de 1 variable d<-describe(ejemplo) #para describir d[c(‘edad’,‘confipol’,‘sexo’)] #parte de las variables d[sort(names(d))] #para mostrar variables en orden alfabetico #######################
#SUBCONJUNTOS************************************** attach(ejemplo) #para no usar el simbolo $ con cada variable. subejemplo<-data.frame(sexo, educ, edad, ingresos) detach(ejemplo) #anula el efecto de attach names(subejemplo) describe(subejemplo) ###############################
#VIENDO LOS PERDIDOS******************************* install.packages(“mice”) #paquete para analizar e imputar library(mice) md.pattern(subejemplo) par <- md.pairs(subejemplo) par #############################
#RECODIFICANDO************************************* describe(subejemplo\(edad) str(subejemplo) subejemplo\)edad<- as.numeric(subejemplo\(edad) subejemplo\)educ<- as.ordered(subejemplo\(educ) subejemplo\)viejo<- ifelse(subejemplo\(edad> 70, c("si"), c("no")) describe(subejemplo\)viejo) subejemplo\(edad3[subejemplo\)edad > 75] <- “anciano” subejemplo\(edad3[subejemplo\)edad > 45 & subejemplo\(edad <= 75] <- "adulto" subejemplo\)edad3[subejemplo$edad<= 45] <- “joven” describe(subejemplo$edad3) names(subejemplo) #################################
#SELECCIONANDO************************************* chibolos<- subejemplo[ which(subejemplo\(sexo=="Hombre" & subejemplo\)edad < 25),] describe(chibolos) señoritas<- subejemplo[ which(subejemplo\(sexo=="Mujer" & subejemplo\)edad3 < 30),] describe(señoritas) #################################
#guardando el archivo nuevo****************** save(subejemplo,file=“subejemplo.rda”) #para R write.csv(subejemplo,file=“subejemplo.csv”) #para excel y otros write.foreign(subejemplo,“subejemplo.txt”,“subejemplo.sps”,package=“SPSS”) #para SPSS ###################################