Capítulo16 Importar datos

Fecha de la ultima revisión

## [1] "2024-11-07"


16.1 Datos importado de la web.

16.1.1 Usar datos que provienen de una base de datos del web.

Aquí un website que recopila la cantidad de personas vacunados en los EEUU.

library(tidyverse)
library(data.table)

Seleccionar solamente los datos de Puerto Rico

16.1.2 COVID world

Otro website de datos de COVID, estos representa los datos de todos los paises del mundo


Para encontrar datos de PR vea el siguiente enlace: Este sitio del gobierno de Puerto Rico almacen datos muchos diferentes tipos que estan relacionado a la isla.

https://datos.estadisticas.pr/dataset?res_format=CSV

Nota que para leer los datos de un archivo CSV, se usa la función “fread()” del paquete “data.table”.

  • Cuando entre a la pagina, selecciona uno de los archivos, por ejemplo Facultad -Conservatorio de Musica
  • Presione el boton “Explore” y selecciona “Preview”
  • Arriba de la pagina vera el enlace de https://……… para poner en un script.
  • Copie y pegue en el script.

Otra alternativa es bajar los datos en formato .csv o Excel y subirlo a su proyecto en RStudio.

16.2 Ejercicio

  • Selecciona solamente los datos de los bebes que nacieron primer mes del año, pero agrupado por el día de la semana y contabilizado

COVID_PR

  • Calcula la cantidad de muertes por día en PR, y el máximo de muerto en un día por COVID

16.3 Datos importando de su computadora

16.3.1 Temas: Funciones para importar datos con el paquete readr

  • read_csv() # sepeardo por coma
  • read_csv2() # separado por punto y coma
  • read_tsv() # separado por tab
  • read_delim() # separado por delimitador
  • read_fwf()
  • read_width()
  • read_positions()
  • read_table()
library(tidyverse)
library(readr)
Newborn_Karn_Penrose <- read_csv("Datos/Newborn_Karn_Penrose.csv")


#library(readxl)
#Newborn_Karn_Penrose1 <- read_excel("~/Google Drive/GitHub_Google_Drive/GitHub/Vintage_DATA/DATA/Human_Birth_Weight/Newborn_Karn_Penrose.xlsx", sheet = 3)

head(Newborn_Karn_Penrose)
## # A tibble: 6 × 4
##   Mother_age Count_Non_survivors Count_Total_Birth Birth_weight
##        <dbl>               <dbl>             <dbl>        <dbl>
## 1         16                   0                 1          9.5
## 2         16                   0                 2          9  
## 3         16                   0                 1          8.5
## 4         16                   0                 3          8  
## 5         16                   0                 7          7.5
## 6         16                   0                 2          7

Hacer una columna de la proporción de los niños que no sobrevivieron.

Newborn_Karn_Penrose %>% select(Count_Non_survivors, Count_Total_Birth) %>% arrange(Count_Total_Birth, Count_Non_survivors) %>% mutate(Perc_sobrevivieron = Count_Non_survivors/Count_Total_Birth)

Newborn_Karn_Penrose %>% 
  mutate(Percent_Decease = Count_Non_survivors/Count_Total_Birth)
## # A tibble: 261 × 5
##    Mother_age Count_Non_survivors Count_Total_Birth Birth_weight Percent_Decease
##         <dbl>               <dbl>             <dbl>        <dbl>           <dbl>
##  1         16                   0                 1          9.5               0
##  2         16                   0                 2          9                 0
##  3         16                   0                 1          8.5               0
##  4         16                   0                 3          8                 0
##  5         16                   0                 7          7.5               0
##  6         16                   0                 2          7                 0
##  7         16                   0                 4          6.5               0
##  8         16                   0                 2          6                 0
##  9         16                   0                 2          5.5               0
## 10         16                   0                 1          5                 0
## # ℹ 251 more rows

Newborn_Karn_Penrose %>% select(Count_Non_survivors, Count_Total_Birth, Birth_weight) %>% arrange(Count_Total_Birth, Count_Non_survivors) %>% mutate(porc_sobrevivieron = Count_Non_survivors / Count_Total_Birth)%>% ggplot(aes(x= Birth_weight, y=porc_sobrevivieron))+ geom_point()+ geom_smooth()

Newborn_Karn_Penrose %>% 
  mutate(Percent_Decease = Count_Non_survivors/Count_Total_Birth) %>% 
  ggplot(aes(Birth_weight, Percent_Decease)) + 
  geom_point() +
  geom_smooth()

Newborn_Karn_Penrose %>% 
  mutate(Percent_Decease = Count_Non_survivors/Count_Total_Birth) %>% 
  ggplot(aes(Birth_weight, Percent_Decease)) + 
  geom_point() +
  geom_smooth()+
  facet_wrap(~Mother_age)

Newborn_Karn_Penrose %>% 
  mutate(Percent_Decease = Count_Non_survivors/Count_Total_Birth) %>% 
  ggplot(aes(Birth_weight, Percent_Decease, color=Mother_age)) + 
  geom_point(aes(color=factor(Mother_age))) +
  geom_smooth(se=FALSE, aes(color=factor(Mother_age)))


16.4 Comparar con base R


  1. Ejercicios:

Hacer los ejercicios en la sección 11.2.2 del libro en español


16.5 Segmentar un vector

  • str(parse_logical())
x= c("TRUE", "FALSE", "NA")
x   
## [1] "TRUE"  "FALSE" "NA"
str(parse_logical(x)) 
##  logi [1:3] TRUE FALSE NA
y= c("Carlos", "Kelvin")
     
y
## [1] "Carlos" "Kelvin"
str(parse_logical(y)) 
##  logi [1:2] NA NA
##  - attr(*, "problems")= tibble [2 × 4] (S3: tbl_df/tbl/data.frame)
##   ..$ row     : int [1:2] 1 2
##   ..$ col     : int [1:2] NA NA
##   ..$ expected: chr [1:2] "1/0/T/F/TRUE/FALSE" "1/0/T/F/TRUE/FALSE"
##   ..$ actual  : chr [1:2] "Carlos" "Kelvin"
str(parse_logical(c("TRUE", "FALSE", "NA")))
##  logi [1:3] TRUE FALSE NA
z=c("1", "2", "3")
z
## [1] "1" "2" "3"
mean(z)
## [1] NA
z1=str(parse_integer(z))
##  int [1:3] 1 2 3
str(parse_integer(c("1", "2", "3")))
##  int [1:3] 1 2 3
str(parse_date(c("2010-01-01", "1979-10-14")))
##  Date[1:2], format: "2010-01-01" "1979-10-14"
m=c("$4000", "$500" )
parse_number(m)
## [1] 4000  500
parse_number("$100")
## [1] 100
#> [1] 100
parse_number("20%")
## [1] 20
#> [1] 20
parse_number("It cost $123.45")
## [1] 123.45
#> [1] 123.45
  • str(parse_integer())
  • str(parse_date())

16.6 Números

  • parse_double()
  • parse_number()
  • parse_number(locale=locale(grouping_mark = “.”))

16.7 Caderna de texto

  • parse_character()

  • charToRaw()

charToRaw("Ramn")
## [1] 52 61 6d 6e
x1 <- "El Ni\xf1o was particularly bad this year"
x2 <- "\x82\xb1\x82\xf1\x82\xc9\x82\xbf\x82\xcd"
x3 <- "The boy was particularly bad this year"

library(readr)
  parse_character(x1, locale = locale(encoding = "Latin1"))
## [1] "El Niño was particularly bad this year"
#> [1] "El Niño was particularly bad this year"
parse_character(x2, locale = locale(encoding = "Shift-JIS"))
## [1] "こんにちは"
parse_character(x, locale = locale(encoding = "Shift-JIS"))
## [1] "TRUE"  "FALSE" NA
#> [1] "こんにちは"
  • guess_encoding(charToRaw())
guess_encoding(charToRaw(x3))
## # A tibble: 1 × 2
##   encoding confidence
##   <chr>         <dbl>
## 1 ASCII             1

16.8 Factores

  • parse_factor()

16.9 Fechas, fechas-horas, horas

  • parse_datetime()

  • library(hms)

  • parse_time()

  1. Ejercicios:

Hacer los ejercicios en la sección 11.3.5 del libro en español

16.10 Segmentar un archivo

  • guess_parser

16.11 Escribir un Archivo

  • write_csv()
  • write_tsv()

16.12 Otro tipos de datos y paquetes

  • library(haven) # SPSS, Stata y SAS
  • readxl() lee archivo Excel en formato .xls, xlsx
  • BDI lee archivo RMySQL y otros