Introducción a R
0. Objetivo del práctico
El objetivo del práctico es introducirnos en Rstudio, debemos recordar que R es un lenguaje orientado a objetos y Rstudio es un Ambiente integrado, en el cual podemos tener muchas funciones, las cuales veremos a continuación:
1. R como calculadora
Debemos recordar que R puede generar múltiples operaciones, una de ellas es realizar diversas operaciones estadísticas
5+2
## [1] 7
5-2
## [1] 3
5/2
## [1] 2.5
5*2
## [1] 10
Como primer ejemplo veremos formas de crear objetos, asignandole un número a un vector
x<-5
Cómo el objeto queda en el enviroment, después podemos imprimir o llamar al objeto
x
## [1] 5
Podemos crear los objetos que creamos necesarios, esta vez, crearemos un segundo objeto llamado y
y<-10
Ahora podemos realizar operaciones con nuestros objetos
x+y
## [1] 15
x-y
## [1] -5
x*y
## [1] 50
x/y
## [1] 0.5
También podemos guardar los resultados como objetos
z<-x^2
z
## [1] 25
También podemos realizar operaciones lógicas. Para establecer una igualdad usamos doble signo ==
x>y
## [1] FALSE
15==x+y
## [1] TRUE
16>x+y
## [1] TRUE
Creación de una variable. “Edad”. mediante la función concatenar “c()”, podemos crear un objeto que agrupe un conjunto de datos. Para el lenguaje del software esto es un vector, para nosotros una variable, en este caso numérica (numeric): intervalar, continua, cuantitativa.
Edad<- c(18,25,33,38,67,25,35,57,99)
summary(Edad)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 25.00 35.00 44.11 57.00 99.00
table(Edad)
## Edad
## 18 25 33 35 38 57 67 99
## 1 2 1 1 1 1 1 1
class(Edad)
## [1] "numeric"
También podemos realiar operaciones sobre los vectores
Edad/2
## [1] 9.0 12.5 16.5 19.0 33.5 12.5 17.5 28.5 49.5
Edad-1
## [1] 17 24 32 37 66 24 34 56 98
Edad2<-Edad-1 #y guardar los resultados
Edad/c(1,2)
## Warning in Edad/c(1, 2): longitud de objeto mayor no es múltiplo de la longitud
## de uno menor
## [1] 18.0 12.5 33.0 19.0 67.0 12.5 35.0 28.5 99.0
Creación de una variable. “Sexo”. Se sigue la misma lógica. Variable cualitativa y nominal, dicotómica. Tipo “Character” Categorías: H=Hombre; M=Mujer.
Sexo<-c("H","H","H","M","H","M","M","M")
summary(Sexo)
## Length Class Mode
## 8 character character
table(Sexo)
## Sexo
## H M
## 4 4
class (Sexo)
## [1] "character"
También puede expresarse como factor siendo variable dummy (para 1 y 0). Variable cualitativa, nominal.
S<-c(1,1,1,0,1,0,0,0,9,9)
#SEXO<-factor(S, levels = c(0,1,9), labels = c("Mujer","Hombre")) #importancia de los errores
SEXO<-factor(S, levels = c(0,1,9), labels = c("Mujer","Hombre","NC"))
summary(SEXO)
## Mujer Hombre NC
## 4 4 2
table(SEXO)
## SEXO
## Mujer Hombre NC
## 4 4 2
Variable Nivel socioecon?mico. Ordinal, cualitativa. NSE: 1=E, 2=D, 3=C3, 4=C2, 5=C1, 6=AB
P1<-c(1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,5,5,5,6,99,99)
NSE<-factor(P1,levels=c(1,2,3,4,5,6),labels=c("E","D","C3","C2","C1","AB"))
table(NSE)
## NSE
## E D C3 C2 C1 AB
## 12 7 6 4 3 1
summary(NSE) #NA son lo perdidos
## E D C3 C2 C1 AB NA's
## 12 7 6 4 3 1 2
Podemos seleccionar elementos específicos de los vecotres
NSE[4] #pedimos el cuarto elemento
## [1] E
## Levels: E D C3 C2 C1 AB
NSE[1:9] #los primeros 9
## [1] E E E E E E E E E
## Levels: E D C3 C2 C1 AB
NSE[c(3,4,5,8,24,31)]
## [1] E E E E C3 C1
## Levels: E D C3 C2 C1 AB
NSE[37]
## [1] <NA>
## Levels: E D C3 C2 C1 AB
NSE[c(T,F)]
## [1] E E E E E E D D D D C3 C3 C3 C2 C2
## [16] C1 AB <NA>
## Levels: E D C3 C2 C1 AB
NSE[NSE=="AB"]
## [1] AB <NA> <NA>
## Levels: E D C3 C2 C1 AB
length(NSE)
## [1] 35
class(NSE)
## [1] "factor"
Crear listas
x <- list(u=c(2,3,4), v="abc")
x #el elemento u de la lista es un vector con 3 números, y el elemento v es abc
## $u
## [1] 2 3 4
##
## $v
## [1] "abc"
ver el elemento u, de la lista x Pedir elementos
x$u
## [1] 2 3 4
x[[2]]
## [1] "abc"
x[[1]][2]
## [1] 3
str(x) #este comando muestra la estructura de un objeto de manera resumida
## List of 2
## $ u: num [1:3] 2 3 4
## $ v: chr "abc"
Crear bases de datos
base<-data.frame(Edad,
SEXO[1:9],
NSE[1:9])
base
## Edad SEXO.1.9. NSE.1.9.
## 1 18 Hombre E
## 2 25 Hombre E
## 3 33 Hombre E
## 4 38 Mujer E
## 5 67 Hombre E
## 6 25 Mujer E
## 7 35 Mujer E
## 8 57 Mujer E
## 9 99 NC E
Ver nombre de las columnas (variables)
colnames(base)
## [1] "Edad" "SEXO.1.9." "NSE.1.9."
Cambiar nombre de las columnas (variables)
colnames(base)<-c("edad","sexo","nse")
Podemos seleccionar variables con el operador $
base$edad #base$variable
## [1] 18 25 33 38 67 25 35 57 99
Tambien podemos usar corchetes base[filas,columnas]
base[5,2]
## [1] Hombre
## Levels: Mujer Hombre NC
base[1:5,2]
## [1] Hombre Hombre Hombre Mujer Hombre
## Levels: Mujer Hombre NC
base[1:5,c(1,3)]
## edad nse
## 1 18 E
## 2 25 E
## 3 33 E
## 4 38 E
## 5 67 E
Sobre una columna podemos seleccionar elementos como un un vector
base$edad[1]
## [1] 18
base$edad[base$sexo=="Hombre"] #podemos usar condiciones lógicas
## [1] 18 25 33 67
Podemos aplicar funciones sobre la base y sobre las variables
head(base) #entrega los primeros elemntos
## edad sexo nse
## 1 18 Hombre E
## 2 25 Hombre E
## 3 33 Hombre E
## 4 38 Mujer E
## 5 67 Hombre E
## 6 25 Mujer E
View(base) #Permite ver la base
str(base)
## 'data.frame': 9 obs. of 3 variables:
## $ edad: num 18 25 33 38 67 25 35 57 99
## $ sexo: Factor w/ 3 levels "Mujer","Hombre",..: 2 2 2 1 2 1 1 1 3
## $ nse : Factor w/ 6 levels "E","D","C3","C2",..: 1 1 1 1 1 1 1 1 1
table(base$sexo)
##
## Mujer Hombre NC
## 4 4 1
help(table)
## starting httpd help server ... done
?table
mean(base$edad)
## [1] 44.11111
Podemos guardar la base de datos
save(base, file = "base.RData") #Se indica primero el objeto a guardar
#y luego el nombre del archivo, entre comillas.
limpiar el ambiente de trabajo
remove(Edad) #borrar un objeto particular
remove(list = ls()) #Borrar todo