1.-Importación y limpieza de datos

#importar la base de datos
myurl="https://raw.githubusercontent.com/armandovl/datasets_uno/main/penguins1.csv"

ping<-read.csv(url(myurl))
#primeros observaciones
head(ping,10)
##    species    sex    island bill_length_mm bill_depth_mm flipper_length_mm
## 1   Adelie   male Torgersen           39.1          18.7               181
## 2   Adelie female Torgersen           39.5          17.4               186
## 3   Adelie female Torgersen           40.3          18.0               195
## 4   Adelie        Torgersen             NA            NA                NA
## 5   Adelie female Torgersen           36.7          19.3               193
## 6   Adelie   male Torgersen           39.3          20.6               190
## 7   Adelie female Torgersen           38.9          17.8               181
## 8   Adelie   male Torgersen           39.2          19.6               195
## 9   Adelie        Torgersen           34.1          18.1               193
## 10  Adelie        Torgersen           42.0          20.2               190
##    body_mass_g
## 1         3750
## 2         3800
## 3         3250
## 4           NA
## 5         3450
## 6         3650
## 7         3625
## 8         4675
## 9         3475
## 10        4250
#resumen de la base
summary(ping)
##    species              sex               island          bill_length_mm 
##  Length:344         Length:344         Length:344         Min.   :32.10  
##  Class :character   Class :character   Class :character   1st Qu.:39.23  
##  Mode  :character   Mode  :character   Mode  :character   Median :44.45  
##                                                           Mean   :43.92  
##                                                           3rd Qu.:48.50  
##                                                           Max.   :59.60  
##                                                           NA's   :2      
##  bill_depth_mm   flipper_length_mm  body_mass_g  
##  Min.   :13.10   Min.   :172.0     Min.   :2700  
##  1st Qu.:15.60   1st Qu.:190.0     1st Qu.:3550  
##  Median :17.30   Median :197.0     Median :4050  
##  Mean   :17.15   Mean   :200.9     Mean   :4202  
##  3rd Qu.:18.70   3rd Qu.:213.0     3rd Qu.:4750  
##  Max.   :21.50   Max.   :231.0     Max.   :6300  
##  NA's   :2       NA's   :2         NA's   :2
#ver como se distribuyen los datos creo que pasa en las variables caracteres
table(ping$species)
## 
##    Adelie Chinstrap    Gentoo 
##       152        68       124
table(ping$sex)
## 
##        female   male 
##     11    165    168
table(ping$island)
## 
##    Biscoe     Dream Torgersen 
##       168       124        52
#eliminar las filas de R sex vacias es mejor eliminar cuand son caracteres

ping<-ping[ping$sex!="",]

summary(ping)
##    species              sex               island          bill_length_mm 
##  Length:333         Length:333         Length:333         Min.   :32.10  
##  Class :character   Class :character   Class :character   1st Qu.:39.50  
##  Mode  :character   Mode  :character   Mode  :character   Median :44.50  
##                                                           Mean   :43.99  
##                                                           3rd Qu.:48.60  
##                                                           Max.   :59.60  
##  bill_depth_mm   flipper_length_mm  body_mass_g  
##  Min.   :13.10   Min.   :172       Min.   :2700  
##  1st Qu.:15.60   1st Qu.:190       1st Qu.:3550  
##  Median :17.30   Median :197       Median :4050  
##  Mean   :17.16   Mean   :201       Mean   :4207  
##  3rd Qu.:18.70   3rd Qu.:213       3rd Qu.:4775  
##  Max.   :21.50   Max.   :231       Max.   :6300
#convertimos a factores
names<-c("species","island","sex")
ping[,names]<-lapply(ping[,names], factor)
str(ping)
## 'data.frame':    333 obs. of  7 variables:
##  $ species          : Factor w/ 3 levels "Adelie","Chinstrap",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ sex              : Factor w/ 2 levels "female","male": 2 1 1 1 2 1 2 1 2 2 ...
##  $ island           : Factor w/ 3 levels "Biscoe","Dream",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ bill_length_mm   : num  39.1 39.5 40.3 36.7 39.3 38.9 39.2 41.1 38.6 34.6 ...
##  $ bill_depth_mm    : num  18.7 17.4 18 19.3 20.6 17.8 19.6 17.6 21.2 21.1 ...
##  $ flipper_length_mm: int  181 186 195 193 190 181 195 182 191 198 ...
##  $ body_mass_g      : int  3750 3800 3250 3450 3650 3625 4675 3200 3800 4400 ...
#resumen de descriptivos de la base
summary(ping)
##       species        sex            island    bill_length_mm  bill_depth_mm  
##  Adelie   :146   female:165   Biscoe   :163   Min.   :32.10   Min.   :13.10  
##  Chinstrap: 68   male  :168   Dream    :123   1st Qu.:39.50   1st Qu.:15.60  
##  Gentoo   :119                Torgersen: 47   Median :44.50   Median :17.30  
##                                               Mean   :43.99   Mean   :17.16  
##                                               3rd Qu.:48.60   3rd Qu.:18.70  
##                                               Max.   :59.60   Max.   :21.50  
##  flipper_length_mm  body_mass_g  
##  Min.   :172       Min.   :2700  
##  1st Qu.:190       1st Qu.:3550  
##  Median :197       Median :4050  
##  Mean   :201       Mean   :4207  
##  3rd Qu.:213       3rd Qu.:4775  
##  Max.   :231       Max.   :6300
#eliminar nulos
ping<-na.omit(ping)
summary(ping)
##       species        sex            island    bill_length_mm  bill_depth_mm  
##  Adelie   :146   female:165   Biscoe   :163   Min.   :32.10   Min.   :13.10  
##  Chinstrap: 68   male  :168   Dream    :123   1st Qu.:39.50   1st Qu.:15.60  
##  Gentoo   :119                Torgersen: 47   Median :44.50   Median :17.30  
##                                               Mean   :43.99   Mean   :17.16  
##                                               3rd Qu.:48.60   3rd Qu.:18.70  
##                                               Max.   :59.60   Max.   :21.50  
##  flipper_length_mm  body_mass_g  
##  Min.   :172       Min.   :2700  
##  1st Qu.:190       1st Qu.:3550  
##  Median :197       Median :4050  
##  Mean   :201       Mean   :4207  
##  3rd Qu.:213       3rd Qu.:4775  
##  Max.   :231       Max.   :6300
str(ping)
## 'data.frame':    333 obs. of  7 variables:
##  $ species          : Factor w/ 3 levels "Adelie","Chinstrap",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ sex              : Factor w/ 2 levels "female","male": 2 1 1 1 2 1 2 1 2 2 ...
##  $ island           : Factor w/ 3 levels "Biscoe","Dream",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ bill_length_mm   : num  39.1 39.5 40.3 36.7 39.3 38.9 39.2 41.1 38.6 34.6 ...
##  $ bill_depth_mm    : num  18.7 17.4 18 19.3 20.6 17.8 19.6 17.6 21.2 21.1 ...
##  $ flipper_length_mm: int  181 186 195 193 190 181 195 182 191 198 ...
##  $ body_mass_g      : int  3750 3800 3250 3450 3650 3625 4675 3200 3800 4400 ...
#cambiar los nombres
colnames(ping)<-c('especie', 'sexo', 'isla', 'largo_pico', 'ancho_pico', 'largo_aleta','peso_g')
#ver los niveles de la variable sexo
levels(ping$sexo)
## [1] "female" "male"
#cambiar los niveles de la variable sexo al español
levels(ping$sexo)<-c("hembra","macho")
summary(ping)
##       especie        sexo            isla       largo_pico      ancho_pico   
##  Adelie   :146   hembra:165   Biscoe   :163   Min.   :32.10   Min.   :13.10  
##  Chinstrap: 68   macho :168   Dream    :123   1st Qu.:39.50   1st Qu.:15.60  
##  Gentoo   :119                Torgersen: 47   Median :44.50   Median :17.30  
##                                               Mean   :43.99   Mean   :17.16  
##                                               3rd Qu.:48.60   3rd Qu.:18.70  
##                                               Max.   :59.60   Max.   :21.50  
##   largo_aleta      peso_g    
##  Min.   :172   Min.   :2700  
##  1st Qu.:190   1st Qu.:3550  
##  Median :197   Median :4050  
##  Mean   :201   Mean   :4207  
##  3rd Qu.:213   3rd Qu.:4775  
##  Max.   :231   Max.   :6300

2.-Ejercicios R basic

2.1 Filtrar

#filtrar los de la especie Adeline y Especie Gentoo
datos1<- ping[ping$especie=="Chinstrap"|ping$especie=="Adelie",]
summary(datos1)
##       especie        sexo            isla       largo_pico     ancho_pico   
##  Adelie   :146   hembra:107   Biscoe   : 44   Min.   :32.1   Min.   :15.50  
##  Chinstrap: 68   macho :107   Dream    :123   1st Qu.:37.8   1st Qu.:17.50  
##  Gentoo   :  0                Torgersen: 47   Median :40.6   Median :18.40  
##                                               Mean   :42.0   Mean   :18.37  
##                                               3rd Qu.:46.0   3rd Qu.:19.10  
##                                               Max.   :58.0   Max.   :21.50  
##   largo_aleta        peso_g    
##  Min.   :172.0   Min.   :2700  
##  1st Qu.:187.0   1st Qu.:3400  
##  Median :191.0   Median :3700  
##  Mean   :191.9   Mean   :3715  
##  3rd Qu.:196.0   3rd Qu.:3994  
##  Max.   :212.0   Max.   :4800

2.2 Ordenar

#ordenar los datos
#biblio https://r-coder.com/ordenar-r/

datos2<-ping[order(ping$largo_aleta, decreasing = TRUE),]
head(datos2)
##     especie  sexo   isla largo_pico ancho_pico largo_aleta peso_g
## 216  Gentoo macho Biscoe       54.3       15.7         231   5650
## 154  Gentoo macho Biscoe       50.0       16.3         230   5700
## 186  Gentoo macho Biscoe       59.6       17.0         230   6050
## 218  Gentoo macho Biscoe       49.8       16.8         230   5700
## 228  Gentoo macho Biscoe       48.6       16.0         230   5800
## 242  Gentoo macho Biscoe       52.1       17.0         230   5550

2.3 Seleccionar

#seleccionar columnas menos isla,ancho_pico,
datos3<-ping[,c(1:2,4,6:7),]
head(datos3)
##   especie   sexo largo_pico largo_aleta peso_g
## 1  Adelie  macho       39.1         181   3750
## 2  Adelie hembra       39.5         186   3800
## 3  Adelie hembra       40.3         195   3250
## 5  Adelie hembra       36.7         193   3450
## 6  Adelie  macho       39.3         190   3650
## 7  Adelie hembra       38.9         181   3625
#otra forma de seleccionar
datos4<-ping[,c(-3,-5)]
head(datos4)
##   especie   sexo largo_pico largo_aleta peso_g
## 1  Adelie  macho       39.1         181   3750
## 2  Adelie hembra       39.5         186   3800
## 3  Adelie hembra       40.3         195   3250
## 5  Adelie hembra       36.7         193   3450
## 6  Adelie  macho       39.3         190   3650
## 7  Adelie hembra       38.9         181   3625

2.4 Añadir columnas

#añadir columna peso en kilos

datos5<-ping

datos5$peso_kg<-ping$peso_g/1000

head(datos5)
##   especie   sexo      isla largo_pico ancho_pico largo_aleta peso_g peso_kg
## 1  Adelie  macho Torgersen       39.1       18.7         181   3750   3.750
## 2  Adelie hembra Torgersen       39.5       17.4         186   3800   3.800
## 3  Adelie hembra Torgersen       40.3       18.0         195   3250   3.250
## 5  Adelie hembra Torgersen       36.7       19.3         193   3450   3.450
## 6  Adelie  macho Torgersen       39.3       20.6         190   3650   3.650
## 7  Adelie hembra Torgersen       38.9       17.8         181   3625   3.625

2.5 Sacar los descriptivos media y mediana a peso_g

media= mean(ping$peso_g)
mediana=median(ping$peso_g)

sprintf("media: %s y mediana: %s", media, mediana)
## [1] "media: 4207.05705705706 y mediana: 4050"

2.6 Sacar los descriptivos por grupo

#calcular la media
tapply(ping$peso_g ,ping$especie, mean)
##    Adelie Chinstrap    Gentoo 
##  3706.164  3733.088  5092.437
#calcular la mediana
tapply(ping$peso_g ,ping$especie, median)
##    Adelie Chinstrap    Gentoo 
##      3700      3700      5050

2.7 Todo a un solo dataframe

#filtrar
datos10<-ping[ping$especie=="Chinstrap"|ping$especie=="Adelie",]
#ordenar
datos10<-datos10[order(datos10$largo_aleta, decreasing = TRUE),]
#Seleccionar
datos10<-datos10[,c(-3,-5)]
#Añadircolumnas
datos10$peso_kg<-datos10$peso_g/1000

head(datos10)
##       especie  sexo largo_pico largo_aleta peso_g peso_kg
## 324 Chinstrap macho       49.0         212   4300    4.30
## 130    Adelie macho       44.1         210   4000    4.00
## 314 Chinstrap macho       52.0         210   4800    4.80
## 317 Chinstrap macho       49.0         210   3950    3.95
## 343 Chinstrap macho       50.8         210   4100    4.10
## 96     Adelie macho       40.8         208   4300    4.30
# sacar descriptivos
media= mean(datos10$peso_g)
mediana=median(datos10$peso_g)

sprintf("media: %s y mediana: %s", media, mediana)
## [1] "media: 3714.71962616822 y mediana: 3700"
#estadísticos por grupo

#calcular la media
print("#############MEDIA################ ")
## [1] "#############MEDIA################ "
tapply(datos10$peso_g ,datos10$especie, mean)
##    Adelie Chinstrap    Gentoo 
##  3706.164  3733.088        NA
print("#############MEDIANA################")
## [1] "#############MEDIANA################"
#calcular la mediana
tapply(datos10$peso_g ,datos10$especie, median)
##    Adelie Chinstrap    Gentoo 
##      3700      3700        NA

3.-Ejercicios Dplyer

1.- filter()
2.- arrange()
3.- select()
4.- mutate()
5.- summarise() gropu_by()
6.- pipes %>%

Llamar la biblioteca

library(dplyr)

3.1. Filter()

datos11<-filter(ping, especie=="Adelie", sexo=="macho")
head(datos11)
##   especie  sexo      isla largo_pico ancho_pico largo_aleta peso_g
## 1  Adelie macho Torgersen       39.1       18.7         181   3750
## 2  Adelie macho Torgersen       39.3       20.6         190   3650
## 3  Adelie macho Torgersen       39.2       19.6         195   4675
## 4  Adelie macho Torgersen       38.6       21.2         191   3800
## 5  Adelie macho Torgersen       34.6       21.1         198   4400
## 6  Adelie macho Torgersen       42.5       20.7         197   4500
#filtrar varias, la coma es igual al &
datos11<-filter(ping, especie=="Adelie"| especie=="Chinstrap", sexo=="macho")
head(datos11)
##   especie  sexo      isla largo_pico ancho_pico largo_aleta peso_g
## 1  Adelie macho Torgersen       39.1       18.7         181   3750
## 2  Adelie macho Torgersen       39.3       20.6         190   3650
## 3  Adelie macho Torgersen       39.2       19.6         195   4675
## 4  Adelie macho Torgersen       38.6       21.2         191   3800
## 5  Adelie macho Torgersen       34.6       21.1         198   4400
## 6  Adelie macho Torgersen       42.5       20.7         197   4500
#el ejemplo era solo filtrar dos especies
datos11<-filter(ping, especie=="Adelie"| especie=="Chinstrap")
head(datos11)
##   especie   sexo      isla largo_pico ancho_pico largo_aleta peso_g
## 1  Adelie  macho Torgersen       39.1       18.7         181   3750
## 2  Adelie hembra Torgersen       39.5       17.4         186   3800
## 3  Adelie hembra Torgersen       40.3       18.0         195   3250
## 4  Adelie hembra Torgersen       36.7       19.3         193   3450
## 5  Adelie  macho Torgersen       39.3       20.6         190   3650
## 6  Adelie hembra Torgersen       38.9       17.8         181   3625

3.2 Arrange() Ordenar

datos12<-arrange(ping, desc(largo_aleta))
head(datos12)
##   especie  sexo   isla largo_pico ancho_pico largo_aleta peso_g
## 1  Gentoo macho Biscoe       54.3       15.7         231   5650
## 2  Gentoo macho Biscoe       50.0       16.3         230   5700
## 3  Gentoo macho Biscoe       59.6       17.0         230   6050
## 4  Gentoo macho Biscoe       49.8       16.8         230   5700
## 5  Gentoo macho Biscoe       48.6       16.0         230   5800
## 6  Gentoo macho Biscoe       52.1       17.0         230   5550
#solo puede una
datos12<-arrange(ping,  desc(largo_aleta))
head(datos12,20)
##    especie  sexo   isla largo_pico ancho_pico largo_aleta peso_g
## 1   Gentoo macho Biscoe       54.3       15.7         231   5650
## 2   Gentoo macho Biscoe       50.0       16.3         230   5700
## 3   Gentoo macho Biscoe       59.6       17.0         230   6050
## 4   Gentoo macho Biscoe       49.8       16.8         230   5700
## 5   Gentoo macho Biscoe       48.6       16.0         230   5800
## 6   Gentoo macho Biscoe       52.1       17.0         230   5550
## 7   Gentoo macho Biscoe       51.5       16.3         230   5500
## 8   Gentoo macho Biscoe       55.1       16.0         230   5850
## 9   Gentoo macho Biscoe       49.5       16.2         229   5800
## 10  Gentoo macho Biscoe       49.8       15.9         229   5950
## 11  Gentoo macho Biscoe       50.8       17.3         228   5600
## 12  Gentoo macho Biscoe       52.2       17.1         228   5400
## 13  Gentoo macho Biscoe       55.9       17.0         228   5600
## 14  Gentoo macho Biscoe       49.1       15.0         228   5500
## 15  Gentoo macho Biscoe       50.8       15.7         226   5200
## 16  Gentoo macho Biscoe       49.6       16.0         225   5700
## 17  Gentoo macho Biscoe       50.5       15.9         225   5400
## 18  Gentoo macho Biscoe       50.1       15.0         225   5000
## 19  Gentoo macho Biscoe       51.1       16.5         225   5250
## 20  Gentoo macho Biscoe       50.4       15.3         224   5550

3.3 Select()

datos13<-select(ping, -isla,-ancho_pico)
head(datos13)
##   especie   sexo largo_pico largo_aleta peso_g
## 1  Adelie  macho       39.1         181   3750
## 2  Adelie hembra       39.5         186   3800
## 3  Adelie hembra       40.3         195   3250
## 5  Adelie hembra       36.7         193   3450
## 6  Adelie  macho       39.3         190   3650
## 7  Adelie hembra       38.9         181   3625

3.4 Mutate()

datos14<-ping
datos14<-mutate(datos14, peso_kg=(peso_g/1000),peso_lib=(peso_g*0022))
head(datos14)
##   especie   sexo      isla largo_pico ancho_pico largo_aleta peso_g peso_kg
## 1  Adelie  macho Torgersen       39.1       18.7         181   3750   3.750
## 2  Adelie hembra Torgersen       39.5       17.4         186   3800   3.800
## 3  Adelie hembra Torgersen       40.3       18.0         195   3250   3.250
## 5  Adelie hembra Torgersen       36.7       19.3         193   3450   3.450
## 6  Adelie  macho Torgersen       39.3       20.6         190   3650   3.650
## 7  Adelie hembra Torgersen       38.9       17.8         181   3625   3.625
##   peso_lib
## 1    82500
## 2    83600
## 3    71500
## 5    75900
## 6    80300
## 7    79750

3.5 Summarise() gropu_by()

datos15<-summarise(ping,media=mean(largo_pico), mediana=median(largo_pico))
print(datos15)
##      media mediana
## 1 43.99279    44.5
datos16<-summarise(group_by(ping,isla),media=mean(largo_pico), mediana=median(largo_pico))
print(datos16)
## # A tibble: 3 x 3
##   isla      media mediana
##   <fct>     <dbl>   <dbl>
## 1 Biscoe     45.2    45.8
## 2 Dream      44.2    45.2
## 3 Torgersen  39.0    39

3.6 Pipes

#pimera forma solo filtros
ping %>%
  filter(especie=="Adelie"|especie=="Chinstrap", sexo=="macho")%>%
  arrange(desc(largo_aleta))%>%
  select(-isla,-ancho_pico)%>%
  mutate(peso_kg=(peso_g/1000),peso_lb=(peso_g)*0.0022)%>%
  summary() #se puede aplicar cualquier funcion incluso graficar
##       especie       sexo       largo_pico     largo_aleta        peso_g    
##  Adelie   :73   hembra:  0   Min.   :34.60   Min.   :178.0   Min.   :3250  
##  Chinstrap:34   macho :107   1st Qu.:39.70   1st Qu.:190.0   1st Qu.:3775  
##  Gentoo   : 0                Median :41.50   Median :195.0   Median :3975  
##                              Mean   :43.79   Mean   :194.8   Mean   :4010  
##                              3rd Qu.:49.65   3rd Qu.:199.0   3rd Qu.:4262  
##                              Max.   :55.80   Max.   :212.0   Max.   :4800  
##     peso_kg         peso_lb      
##  Min.   :3.250   Min.   : 7.150  
##  1st Qu.:3.775   1st Qu.: 8.305  
##  Median :3.975   Median : 8.745  
##  Mean   :4.010   Mean   : 8.823  
##  3rd Qu.:4.263   3rd Qu.: 9.377  
##  Max.   :4.800   Max.   :10.560
#segunda forma con estadísticos de una variables
ping %>%
  filter(especie=="Adelie"|especie=="Chinstrap", sexo=="macho")%>%
  arrange(desc(largo_aleta))%>%
  select(-isla,-ancho_pico)%>%
  mutate(peso_kg=(peso_g/1000),peso_lb=(peso_g)*0.0022)%>%
  summarise(mean(peso_kg))
##   mean(peso_kg)
## 1       4.01028
#tercera forma con estadísticos de una variables agrupadas
ping %>%
  filter(especie=="Adelie"|especie=="Chinstrap", sexo=="macho")%>%
  arrange(desc(largo_aleta))%>%
  select(-isla,-ancho_pico)%>%
  mutate(peso_kg=(peso_g/1000),peso_lb=(peso_g)*0.0022)%>%
  group_by(especie)%>%
  summarise(media=mean(peso_kg), mediana=median(peso_kg),sd(peso_kg))
## # A tibble: 2 x 4
##   especie   media mediana `sd(peso_kg)`
##   <fct>     <dbl>   <dbl>         <dbl>
## 1 Adelie     4.04    4            0.347
## 2 Chinstrap  3.94    3.95         0.362
#conteo de variables
ping%>%
  count(especie,isla)
##     especie      isla   n
## 1    Adelie    Biscoe  44
## 2    Adelie     Dream  55
## 3    Adelie Torgersen  47
## 4 Chinstrap     Dream  68
## 5    Gentoo    Biscoe 119
#es el mismo que el de arriba
ping%>%
  group_by(especie)%>%
  count(isla)
## # A tibble: 5 x 3
## # Groups:   especie [3]
##   especie   isla          n
##   <fct>     <fct>     <int>
## 1 Adelie    Biscoe       44
## 2 Adelie    Dream        55
## 3 Adelie    Torgersen    47
## 4 Chinstrap Dream        68
## 5 Gentoo    Biscoe      119
#conteo de variables multiples
ping%>%
  count(especie,isla,sexo)
##      especie      isla   sexo  n
## 1     Adelie    Biscoe hembra 22
## 2     Adelie    Biscoe  macho 22
## 3     Adelie     Dream hembra 27
## 4     Adelie     Dream  macho 28
## 5     Adelie Torgersen hembra 24
## 6     Adelie Torgersen  macho 23
## 7  Chinstrap     Dream hembra 34
## 8  Chinstrap     Dream  macho 34
## 9     Gentoo    Biscoe hembra 58
## 10    Gentoo    Biscoe  macho 61
#cuarta forma guardar  en una variable
datos20 <-ping %>%
            filter(especie=="Adelie"|especie=="Chinstrap", sexo=="macho")%>%
            arrange(desc(largo_aleta))%>%
            select(-isla,-ancho_pico)%>%
            mutate(peso_kg=(peso_g/1000),peso_lb=(peso_g)*0.0022)
head(datos20,10)
##      especie  sexo largo_pico largo_aleta peso_g peso_kg peso_lb
## 1  Chinstrap macho       49.0         212   4300    4.30    9.46
## 2     Adelie macho       44.1         210   4000    4.00    8.80
## 3  Chinstrap macho       52.0         210   4800    4.80   10.56
## 4  Chinstrap macho       49.0         210   3950    3.95    8.69
## 5  Chinstrap macho       50.8         210   4100    4.10    9.02
## 6     Adelie macho       40.8         208   4300    4.30    9.46
## 7  Chinstrap macho       55.8         207   4000    4.00    8.80
## 8  Chinstrap macho       51.9         206   3950    3.95    8.69
## 9     Adelie macho       41.1         205   4300    4.30    9.46
## 10 Chinstrap macho       52.8         205   4550    4.55   10.01