Bases de datos
datos=data.frame(var1=c(1,2),
var2=c('si','no')
)
datos
var1 var2 1 1 si 2 2 no
str(datos)
‘data.frame’: 2 obs. of 2 variables: $ var1: num 1 2 $ var2: chr “si” “no”
## cambiar de nombre a las columnas
colnames(datos)=c('a1','a2')
# para pasar el nombre de las variables a mayusculas
colnames(datos)=toupper(names(datos))
datos
A1 A2 1 1 si 2 2 no
colnames(datos)=tolower(names(datos))
library(kableExtra)
kable(datos)
| a1 | a2 |
|---|---|
| 1 | si |
| 2 | no |
Lista mas inclusiva que la base de datos
# defino un escalar
a1=1
# defino un vector
a2=c('rojo','azul')
# tengo una base de datos
datos
## a1 a2
## 1 1 si
## 2 2 no
# las puedo poner en una lista
lista1=list(a1,a2,datos)
lista1
## [[1]]
## [1] 1
##
## [[2]]
## [1] "rojo" "azul"
##
## [[3]]
## a1 a2
## 1 1 si
## 2 2 no
## extraer algo de la lista
lista1[[3]]
## a1 a2
## 1 1 si
## 2 2 no
# si lo quiero guardar
datos1=lista1[[3]]
datos1
## a1 a2
## 1 1 si
## 2 2 no
datos_1=data.frame(a1=runif(10,60,80),
a2=runif(10,1.50,1.80),
a3=sample(c('M','H'),10,replace=TRUE)
)
# subconjuntos, estadisticas y cuadros basicos
datos_1
## a1 a2 a3
## 1 65.36256 1.739116 M
## 2 60.70097 1.661549 M
## 3 71.75730 1.661674 M
## 4 78.84151 1.565510 H
## 5 62.33012 1.601945 H
## 6 64.90316 1.735519 H
## 7 78.55975 1.783271 M
## 8 71.72792 1.743609 M
## 9 66.97603 1.621794 H
## 10 78.71346 1.555502 H
# haciendo subconjuntos
str(datos_1)
## 'data.frame': 10 obs. of 3 variables:
## $ a1: num 65.4 60.7 71.8 78.8 62.3 ...
## $ a2: num 1.74 1.66 1.66 1.57 1.6 ...
## $ a3: chr "M" "M" "M" "H" ...
dim(datos_1)
## [1] 10 3
# se pueden formas subconjuntos
# nombre de la base de datos mas corchetes
# si quiero obtener la tercera variable
datos_1[,3]
## [1] "M" "M" "M" "H" "H" "H" "M" "M" "H" "H"
# encabezado
head(datos_1,2)
## a1 a2 a3
## 1 65.36256 1.739116 M
## 2 60.70097 1.661549 M
# si quieren seleccionar solamente un escalar
datos_1[8,1]
## [1] 71.72792
# puedo obtener los estadisticos basicos
summary(datos_1)
## a1 a2 a3
## Min. :60.70 Min. :1.556 Length:10
## 1st Qu.:65.02 1st Qu.:1.607 Class :character
## Median :69.35 Median :1.662 Mode :character
## Mean :69.99 Mean :1.667
## 3rd Qu.:76.86 3rd Qu.:1.738
## Max. :78.84 Max. :1.783
# imputar en nas a la base de datos
datos_1[8,1]=NA
datos_1
## a1 a2 a3
## 1 65.36256 1.739116 M
## 2 60.70097 1.661549 M
## 3 71.75730 1.661674 M
## 4 78.84151 1.565510 H
## 5 62.33012 1.601945 H
## 6 64.90316 1.735519 H
## 7 78.55975 1.783271 M
## 8 NA 1.743609 M
## 9 66.97603 1.621794 H
## 10 78.71346 1.555502 H
# quitando los nas
complete.cases(datos_1)
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE
# generar un nueva base de datos
datos_2=datos_1[complete.cases(datos_1),]
datos_2
## a1 a2 a3
## 1 65.36256 1.739116 M
## 2 60.70097 1.661549 M
## 3 71.75730 1.661674 M
## 4 78.84151 1.565510 H
## 5 62.33012 1.601945 H
## 6 64.90316 1.735519 H
## 7 78.55975 1.783271 M
## 9 66.97603 1.621794 H
## 10 78.71346 1.555502 H
# graficas
# una variable numérica
# diagrama de dispersión
plot(datos_1$a2,datos_1$a1,col='#0C8488', cex.axis=.8,pch=15,
main='Primera gráfica',ylab='Pesos',xlab='Estaturas')