Actividad 2
library(pander) #Visualizar tablas
# Creación de un marco de datos
tib.c <- data.frame("Biomasa"= Normal,"Flores.r"=Binomial, "Flores.d"=Poisson, "Hoja.d"=reemplazo, "Plaga"=bernoulli, "Estatus"=plantas, "Fertilizacion"=uniforme)
pander(head(tib.c))
| 4.219 |
18 |
8 |
1 |
Ausente |
S |
FO |
| 5.469 |
16 |
16 |
1 |
Ausente |
S |
FO |
| 3.59 |
15 |
11 |
1 |
Presente |
S |
FO |
| 6.208 |
17 |
8 |
1 |
Presente |
S |
FI |
| 6.167 |
13 |
15 |
1 |
Presente |
S |
FO |
| 5.13 |
15 |
8 |
1 |
Presente |
S |
FI |
# Revisando dimensión de los datos
dimension <- dim(tib.c)
# Revisando la estrutura de los datos
estructura <- str(tib.c)
## 'data.frame': 120 obs. of 7 variables:
## $ Biomasa : num 4.22 5.47 3.59 6.21 6.17 ...
## $ Flores.r : int 18 16 15 17 13 15 15 18 17 18 ...
## $ Flores.d : int 8 16 11 8 15 8 12 8 14 10 ...
## $ Hoja.d : int 1 1 1 1 1 1 1 1 1 1 ...
## $ Plaga : chr "Ausente" "Ausente" "Presente" "Presente" ...
## $ Estatus : Factor w/ 3 levels "S","PA","MA": 1 1 1 1 1 1 1 1 1 1 ...
## $ Fertilizacion: chr "FO" "FO" "FO" "FI" ...
# Revisando la clase de los datos
clase <- class(tib.c)
#Revisando el nombre de las variables de los datos
variables <- names(tib.c)
# Revisando datos faltantes en los datos
faltantes <- is.na(tib.c)
Ahora se realizara un conjunto de datos con faltantes, se llamara tib.i
tamaño <- nrow(tib.c)*0.75
tib.i <-sample_n(tib.c,size=tamaño)
dim(tib.i)
## [1] 90 7
tib.i$Biomasa[14]= NA
tib.i$Hoja.d[87]= NA
tib.i[14,]
## Biomasa Flores.r Flores.d Hoja.d Plaga Estatus Fertilizacion
## 14 NA 19 9 1 Ausente MA FO
tib.i[87,]
## Biomasa Flores.r Flores.d Hoja.d Plaga Estatus Fertilizacion
## 87 5.87 13 9 NA Ausente PA FI
Actividad 3
# Seleccionamos la variable Biomasa para lo datos completos (tib.c)
biomasa <-tib.c %>% select(Biomasa)
# Seleccionamos de la tercera a la sexta variable de tib.c
col_3.6 <-tib.c %>% select(3:6)
# No selecione desde la tercera hasta la sexta variable de tib.c
col_1.2.7 <-tib.c %>% select(!3:6)
# Selección de variables que no finalizan con .d
var.d <- tib.i %>% select(!ends_with(".d"))
# Selección de variables que inician con Fl
var_Fl <- tib.i %>% select(starts_with("Fl"))
# Selección de variables con 2 condiciones
var_2cond <-tib.i %>% select(starts_with("Fl")& ends_with(".d"))
# Selección de una variable agrupandola con Estatus
var_estatus <- tib.c %>% select(Biomasa, Estatus) %>% group_by(Estatus)
# Ordenando de mayor a menor una variable
bio_estatus <-(arrange(var_estatus, desc(Biomasa),.by_group =TRUE))
# Filtrar variables que inician con Flores para la condicion MA
Flores <-tib.c %>% filter(Estatus=="MA") %>% select(starts_with("Flores"), Estatus)
# Filtrar Biomasa > 5 gramos
biomasa_sup5 <-tib.c %>% filter(Biomasa>5) %>% select(Biomasa)
# Filtrar por fertilización organica (FO) y estado parcialmente afectado (PA)
FO_PA <- tib.c %>% select(Fertilizacion, Estatus) %>% filter(Fertilizacion=="FO", Estatus== "PA")
#Filtrar por fertilización inorganica (FI) o parcialmente afectadas (PA)
FI_o_PA <- tib.c %>% select (Fertilizacion, Estatus) %>% filter(Fertilizacion=="FI"|Estatus=="PA")
# Filtrar por Flores.d > mediana y Plaga
Fl.d_Pl <- tib.c %>% select(Flores.d, Plaga) %>% filter(Flores.d>median(Flores.d))
# Filtar variable con datos faltantes > mediana y Plaga
Falt_Pl <- tib.i %>% select(Hoja.d, Plaga) %>% filter(Hoja.d>median(Hoja.d,na.rm = TRUE))
# Asignar a vector
v1= c(tib.c$Flores.d,tib.c$Hoja.d)
v2= c (quantile(tib.c$Flores.d,0.25), quantile(tib.c$Hoja.d,0.75))
v1_v2 <- tib.c %>% filter(v1[[1]]>v2[[1]],v1[[2]]>v2[[2]])
# Creación de marco de datos con variables cuantitativas estandarizadas
str(tib.c)
## 'data.frame': 120 obs. of 7 variables:
## $ Biomasa : num 4.22 5.47 3.59 6.21 6.17 ...
## $ Flores.r : int 18 16 15 17 13 15 15 18 17 18 ...
## $ Flores.d : int 8 16 11 8 15 8 12 8 14 10 ...
## $ Hoja.d : int 1 1 1 1 1 1 1 1 1 1 ...
## $ Plaga : chr "Ausente" "Ausente" "Presente" "Presente" ...
## $ Estatus : Factor w/ 3 levels "S","PA","MA": 1 1 1 1 1 1 1 1 1 1 ...
## $ Fertilizacion: chr "FO" "FO" "FO" "FI" ...
# La variable biomasa es continua y debe estandarizarse con score z
tibc_mean <- mean(tib.c$Biomasa)
tibc_sd <- sd(tib.c$Biomasa)
score_z <- (tib.c$Biomasa - mean(tib.c$Biomasa))/sd(tib.c$Biomasa)
# Ahora estandarizamos con minimax las variables discretas (Flores.r, Flores.d y Hoja-d)
minmax_norm <- function(x) {(x - min(x)) / (max(x) - min(x))}
tibc_norm <- as.data.frame(lapply(tib.c[2:4], minmax_norm))
# Creación dataframe
tib.e <- data.frame(Biomasa=score_z,tibc_norm)
pander(head(tib.e))
| -0.9361 |
0.7143 |
0.3571 |
NA |
| 0.5358 |
0.4286 |
0.9286 |
NA |
| -1.677 |
0.2857 |
0.5714 |
NA |
| 1.407 |
0.5714 |
0.3571 |
NA |
| 1.359 |
0 |
0.8571 |
NA |
| 0.1371 |
0.2857 |
0.3571 |
NA |
Actividad 5
# Media y número de datos de la variable Biomasa del tibble con datos faltantes
d_bio <-tib.i %>% select(Biomasa) %>% summarise(n_datos=n(),media=mean(Biomasa,na.rm=TRUE))
pander(d_bio)
# Media y número de datos de variable Fertilización del tibble con datos faltantes
d_fert <-tib.i %>% select(Biomasa,Fertilizacion) %>% group_by(Fertilizacion) %>% summarise(n_datos=n(), media=mean(Biomasa,na.rm=TRUE))
pander(d_fert)
# Datos con cuantiles
quart<-tib.i %>% select(Biomasa,Fertilizacion) %>% group_by(Fertilizacion) %>% summarise(n_datos=n(),
q_10 = quantile(Biomasa, 0.10, na.rm = T),
q_20 = quantile(Biomasa, 0.10, na.rm = T),
q_30 = quantile(Biomasa, 0.10, na.rm = T),
q_40 = quantile(Biomasa, 0.10, na.rm = T),
q_50 = quantile(Biomasa, 0.10, na.rm = T))
pander(quart)
| FI |
42 |
4.1 |
4.1 |
4.1 |
4.1 |
4.1 |
| FO |
48 |
3.872 |
3.872 |
3.872 |
3.872 |
3.872 |
## Summarise con estadisticas
sta<-tib.i %>% select(Plaga, Biomasa,Fertilizacion) %>% group_by(Plaga, Fertilizacion) %>% summarise(
media = mean(Biomasa, na.rm = T),
mediana = median(Biomasa, na.rm = T),
maximo = max(Biomasa, na.rm = T),
minimo = min(Biomasa, na.rm = T),
desv_tipica = ,sd(Biomasa, na.rm = T),
desv_media = mad(Biomasa, na.rm = T),
media_truncada_10 = mean(Biomasa, tri = 0.1, na.rm = T),
varianza = var(Biomasa, na.rm = T))
## `summarise()` has grouped output by 'Plaga'. You can override using the `.groups` argument.
pander(sta)
Table continues below
| Ausente |
FI |
5.093 |
5.271 |
6.327 |
2.992 |
| Ausente |
FO |
4.876 |
4.927 |
5.881 |
3.708 |
| Presente |
FI |
5.058 |
4.949 |
6.858 |
3.36 |
| Presente |
FO |
4.783 |
4.744 |
7.088 |
3.293 |
| 0.9684 |
0.8859 |
5.179 |
0.9377 |
| 0.6395 |
0.5097 |
4.891 |
0.409 |
| 0.8862 |
0.7842 |
5.05 |
0.7854 |
| 0.8665 |
0.972 |
4.736 |
0.7508 |
## Summarise con estadisticas + filter
sta_filt <-tib.i %>% select(Plaga, Biomasa,Fertilizacion, Estatus) %>% filter(Estatus == 'S') %>% group_by(Plaga, Fertilizacion) %>% summarise(
media = mean(Biomasa, na.rm = T),
mediana = median(Biomasa, na.rm = T),
maximo = max(Biomasa, na.rm = T),
minimo = min(Biomasa, na.rm = T),
desv_tipica = ,sd(Biomasa, na.rm = T),
desv_media = mad(Biomasa, na.rm = T),
media_truncada_10 = mean(Biomasa, tri = 0.1, na.rm = T),
varianza = var(Biomasa, na.rm = T))
## `summarise()` has grouped output by 'Plaga'. You can override using the `.groups` argument.
pander(sta_filt)
Table continues below
| Ausente |
FI |
5.068 |
4.961 |
6.327 |
4.022 |
| Ausente |
FO |
5.217 |
5.142 |
5.881 |
4.887 |
| Presente |
FI |
5.041 |
5.222 |
6.858 |
3.36 |
| Presente |
FO |
4.817 |
4.924 |
6.352 |
3.59 |
| 1.026 |
1.049 |
5.068 |
1.052 |
| 0.4003 |
0.319 |
5.217 |
0.1603 |
| 1.281 |
1.462 |
5.041 |
1.642 |
| 0.7919 |
0.8957 |
4.789 |
0.627 |
## estadisticas sin datos faltantes
sta_na <-drop_na(tib.i) %>% select(Plaga, Biomasa,Fertilizacion, Estatus) %>% filter(Estatus == 'S') %>% group_by(Plaga, Fertilizacion) %>% summarise(
media = mean(Biomasa, na.rm = T),
mediana = median(Biomasa, na.rm = T),
maximo = max(Biomasa, na.rm = T),
minimo = min(Biomasa, na.rm = T),
desv_tipica = ,sd(Biomasa, na.rm = T),
desv_media = mad(Biomasa, na.rm = T),
media_truncada_10 = mean(Biomasa, tri = 0.1, na.rm = T),
varianza = var(Biomasa, na.rm = T))
## `summarise()` has grouped output by 'Plaga'. You can override using the `.groups` argument.
pander(sta_na)
Table continues below
| Ausente |
FI |
5.068 |
4.961 |
6.327 |
4.022 |
| Ausente |
FO |
5.217 |
5.142 |
5.881 |
4.887 |
| Presente |
FI |
5.041 |
5.222 |
6.858 |
3.36 |
| Presente |
FO |
4.817 |
4.924 |
6.352 |
3.59 |
| 1.026 |
1.049 |
5.068 |
1.052 |
| 0.4003 |
0.319 |
5.217 |
0.1603 |
| 1.281 |
1.462 |
5.041 |
1.642 |
| 0.7919 |
0.8957 |
4.789 |
0.627 |
## filtrando datos %in%
da_in <-tib.i %>% filter(Estatus%in%c('MA', 'PA')) %>% head()
pander(da_in)
| 7.088 |
18 |
8 |
1 |
Presente |
MA |
FO |
| 3.708 |
18 |
12 |
1 |
Ausente |
PA |
FO |
| 6.253 |
16 |
13 |
1 |
Presente |
MA |
FI |
| 4.671 |
17 |
9 |
1 |
Presente |
MA |
FI |
| 5.154 |
15 |
4 |
1 |
Presente |
MA |
FO |
| 4.596 |
14 |
6 |
1 |
Ausente |
PA |
FO |
## complete cases
tib.i_sin_na = tib.i[complete.cases(tib.i),]
tib.i_sin_na %>% head() %>% pander()
| 7.088 |
18 |
8 |
1 |
Presente |
MA |
FO |
| 3.708 |
18 |
12 |
1 |
Ausente |
PA |
FO |
| 6.253 |
16 |
13 |
1 |
Presente |
MA |
FI |
| 4.671 |
17 |
9 |
1 |
Presente |
MA |
FI |
| 5.154 |
15 |
4 |
1 |
Presente |
MA |
FO |
| 4.596 |
14 |
6 |
1 |
Ausente |
PA |
FO |
# eliminando conteo de flores
tib.i %>% select(-starts_with('Flores')) %>% head() %>% pander()
| 7.088 |
1 |
Presente |
MA |
FO |
| 3.708 |
1 |
Ausente |
PA |
FO |
| 6.253 |
1 |
Presente |
MA |
FI |
| 4.671 |
1 |
Presente |
MA |
FI |
| 5.154 |
1 |
Presente |
MA |
FO |
| 4.596 |
1 |
Ausente |
PA |
FO |
## seleccionando variables que contengan .d
tib.i %>% select(contains('.d')) %>% head() %>% pander()
| 8 |
1 |
| 12 |
1 |
| 13 |
1 |
| 9 |
1 |
| 4 |
1 |
| 6 |
1 |
### reordenando tabla
tib.i %>% select(contains('Flores'), everything()) %>% head() %>% pander()
| 18 |
8 |
7.088 |
1 |
Presente |
MA |
FO |
| 18 |
12 |
3.708 |
1 |
Ausente |
PA |
FO |
| 16 |
13 |
6.253 |
1 |
Presente |
MA |
FI |
| 17 |
9 |
4.671 |
1 |
Presente |
MA |
FI |
| 15 |
4 |
5.154 |
1 |
Presente |
MA |
FO |
| 14 |
6 |
4.596 |
1 |
Ausente |
PA |
FO |