1 Tipos de datos en R

En R, existen 6 tipos de datos.Sin embargo, vamos a visualizar 4:

## [1] 1
## [1] 1
## [1] 1
## [1] 2
## [1] 1.2
## [1] 2
## [1] "Futbol Club Barcelona"
## [1] TRUE

Con la función typeof() se puede obtener el tipo de datos:

## [1] "double"
## [1] "integer"
## [1] "character"

2 Tipos de estructuras de datos

2.1 Vectores

Un vector en R puede contener una colección de números o de caracteres no numéricos. Para definir un vector, por ejemplo, el vector x = (1, 3, 5) , usaremos el comando de concatenación c.

2.1.1 Algunas funciones básicas de R

Ahora vamos a repasar algunas funciones básicas de R, que son de utilidad para una gran diversidad de situaciones, a la hora de trabajar con vectores.

2.1.1.1 paste0()

Con la función paste0() podemos concatenar texto:

## [1] "El tipo de dato de x1 es " "double"

2.1.1.2 seq()

Con la función seq() se pueden generar secuencias de datos basadas en un patrón impuesto por el programador.

Un vector de números consecutivos, por ejemplo c(1,2,3,4,5) se puede definir con 1:5 en R.Alternativamente y de manera general, se puede usar seq():

## [1] 1 2 3 4 5
##  [1]  1 11 21 31 41 51 61 71 81 91

2.1.1.3 rep()

Con la función rep(x) se pueden replicar los valores de x

##  [1] 1 2 3 4 5 1 2 3 4 5

2.1.2 Vectores con distribución de probabilidad aleatorias

Con la función rnorm(x) se pueden generar fácilmente una muestra de números aleatorios que sigan una distribución normal:

##  [1] -0.42159975  0.53025950 -1.61735918  0.83169123 -1.48315597
##  [6] -1.00819132 -0.57936300  0.66003347  0.16247425  1.48044238
## [11]  0.82923321  1.31491549  0.69773005  0.12578882  0.05392670
## [16]  0.80606901 -0.58693774 -1.15490809 -1.11025081 -0.05273140
## [21] -0.63176324 -0.72496686 -2.26479835 -0.31719844 -0.59984557
## [26]  0.05363054  0.34952822 -0.77666732 -0.28370617 -0.03394967
## [31] -0.18627963  0.52292340  0.80479027  0.19333494 -0.12163754
## [36] -0.98345463 -1.02817031  0.03669140  1.36124606 -0.75322964
## [41] -2.53092936 -1.25210095 -0.68871503 -0.92226916  1.02654353
## [46] -0.61524454  0.29193297 -0.62612715  1.57862270 -0.03605387
##  [1] 49.51925 50.41369 48.25544 50.88324 48.58514 48.88990 49.40318
##  [8] 50.59353 50.18076 51.57334 50.75184 51.11339 50.78636 49.95585
## [15] 49.94164 50.70460 49.21128 48.87230 48.88260 49.98560 49.54614
## [22] 49.31605 47.70034 49.69162 49.29319 50.18911 50.40105 49.22191
## [29] 49.69499 49.90816 49.89629 50.55349 50.82008 50.13074 49.96867
## [36] 49.05620 48.83589 49.97959 51.36073 49.33211 47.33419 48.84185
## [43] 49.15078 49.13361 51.04126 49.38290 50.42741 49.30625 51.53845
## [50] 49.72801
## [1] 0.9946325

2.1.3 Indices de vectores

Con la función rnorm(x) se pueden generar fácilmente una muestra de números aleatorios que sigan una distribución normal:

## [1] 49.51925
## [1] 48.25544 50.88324 48.58514
## [1] 51.53845 49.72801

2.1.4 Operadores Relacionales

<, >, ==, >=, <=, !=

## [1] FALSE  TRUE  TRUE FALSE FALSE
## [1] TRUE TRUE TRUE TRUE TRUE
## [1] FALSE FALSE FALSE FALSE FALSE
## [1] 6 9

2.1.5 Operaciones lógicas

& y | son los operadores “y” y “o”, respectivamente, por ejemplo:

## [1]  3  6  9  2 -5
## [1]  4  6  8 12 -2
## [1] -5
## [1]  6  9 -5

2.1.6 Aritmetica de vectores

& y | son los operadores “y” y “o”, respectivamente, por ejemplo:

## [1]  90  98 -10  22  -9 -55  10 230
## [1]   0 -98  45  -3   1  -4  11  23
## [1]  90   0  35  19  -8 -59  21 253
## [1]  92 100  -8  24  -7 -53  12 232
## [1]   1.000000e+00  7.241768e-196  -1.000000e+45   9.391435e-05
## [5]  -9.000000e+00   1.092822e-07   1.000000e+11   2.088047e+54
## [1]  0.00000000 -1.00000000 -4.50000000 -0.13636364 -0.11111111  0.07272727
## [7]  1.10000000  0.10000000

2.2 Factores

Los factores son un tipo especial de vectores que permiten analizar variables Estadísticas cualitativas nominales o ordinales

## [1] Alajuela Heredia  Alajuela Cartago  Heredia 
## Levels: Alajuela Cartago Heredia
## [1] "factor"

2.2.1 Niveles de Factores

A los factores, se le pueden agregar las categorías o rango de categorías que dicho factor puede tener:

## [1] male   female female male  
## Levels: male female
## [1] 2

2.2.2 Orden de los niveles de Factores

Cuando los factores son cualitativos el orden no es importante, pero cuando son ordinales, es importante indicar el correspondiente orden de los niveles o categorías del factor:

## [1] "high"   "low"    "medium"

Notese, como las categorías están en desorden.Para corregirlo se utiliza el argumento ordered=TRUE dentro de factor()

## [1] "low"    "medium" "high"

2.3 Matrices

En R, una matriz es una coleeción de datos del mismo tipo(numérico,carácter o lógico).A diferencia de los vectores, son bidimensionales, ya que tienen filas y columnas.Se utiliza la función matrix() para construir una matriz.

##      [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
## [3,]    3    7   11
## [4,]    4    8   12
##   x y  z
## a 1 5  9
## b 2 6 10
## c 3 7 11
## d 4 8 12

Para obtener las dimensiones de la matriz se realiza mediante dim() :

## [1] 4 3

2.3.1 Indices de matrices

De igual manera que con los vectores, se pueden obtener valores específicos de las matrices mediante sus índices.La regla es matriz[f,c] donde fila es el número de fila deseado y c es el número de columna

## [1] 1
## a b c d 
## 1 2 3 4
## x y z 
## 1 5 9
##   y  z
## a 5  9
## b 6 10

2.4 Dataframes

Los dataframes se diferencian de las matrices básicamente en dos aspectos:

  • Puede almacenar distintos tipos de datos.
  • Las filas son observaciones y las columnas con variables.

2.4.1 Funciones útiles sobre data frames.

R tiene por defecto algunos dataframes embedidos para analizar datos.Por ejemplo, vamos a analizar mtcars:

##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## [1] "data.frame"
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000
##  [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
## [11] "carb"
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
##                   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## AMC Javelin      15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28       13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9        27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2    26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa     30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L   15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino     19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora    15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E       21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

2.4.2 Crear dataframes

La función dataframe y as.dataframe crean y convierte a dataframe respectivamente:

## [1] Azules   Marrones Marrones
## Levels: Azules Marrones Verdes Negros
##   Color.ojos Peso Altura
## 1     Azules   68   1.65
## 2   Marrones   75   1.79
## 3   Marrones   88   1.85
##   x y  z
## a 1 5  9
## b 2 6 10
## c 3 7 11
## d 4 8 12
##   Alajuela San Pedro TEC
## a        1         5   9
## b        2         6  10
## c        3         7  11
## d        4         8  12
## [1] 1 2 3 4

Podemos ver más de dataframes en https://monashdatafluency.github.io/r-intro-2/data-frames.html

2.5 Listas

Finalmente tenemos las listas.Las listas son colecciones de objetos que pueden guardar a su vez muchos objetos de diverso tipos.Por ejemplo, el primer objeto puede ser un vector, el segundo una matriz y el tercero un dataframe.Estas son muy útiles para los resultados de funciones más complejas que veremos posteriormente en el curso.

## $vector
## [1] 1.2
## 
## $matriz
##   x y  z
## a 1 5  9
## b 2 6 10
## c 3 7 11
## d 4 8 12
## 
## $dataframe
##   Color.ojos Peso Altura
## 1     Azules   68   1.65
## 2   Marrones   75   1.79
## 3   Marrones   88   1.85
## [1] "vector"    "matriz"    "dataframe"

Existen varias maneras de obtener los objetos de una lista, como las siguientes:

##   x y  z
## a 1 5  9
## b 2 6 10
## c 3 7 11
## d 4 8 12
##   x y  z
## a 1 5  9
## b 2 6 10
## c 3 7 11
## d 4 8 12
## x y z 
## 1 5 9

Es importante mencionar, que a una lista se le pueden ir agregando nuevos objetos así surja la necesidad:

## $vector
## [1] 1.2
## 
## $matriz
##   x y  z
## a 1 5  9
## b 2 6 10
## c 3 7 11
## d 4 8 12
## 
## $dataframe
##   Color.ojos Peso Altura
## 1     Azules   68   1.65
## 2   Marrones   75   1.79
## 3   Marrones   88   1.85
## 
## [[4]]
## [1] "Esto es un nuevo objeto"

3 Paquetes

R cuenta con un amplio repertorio de adiciones al lenguaje base llamados “paquetes” o “librerías”, los cuáles son creados por diversos tipos de usuarios para múltiples propósitos.

Existe un repositorio oficial llamado CRAN de donde se pueden descargar versiones estables de los paquetes.Además existen otros repositorios no oficiales como Github en donde los desarrolladores tienen sus versiones de prueba, pero con mayores características, dado que son versiones nuevas de los paquetes que aún no salen a producción.

Veremos brevemente la forma de instalar y cargar paquetes, de manera clásica y de manera dinámica para identificar cuando un paquete se encuentra o no instalado e instalar automáticamente:

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/3.5'
## (as 'lib' is unspecified)
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
## 
##     date
## $ggplot2
## [1] "ggplot2"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
## [7] "methods"   "base"     
## 
## $lubridate
## [1] "lubridate" "ggplot2"   "stats"     "graphics"  "grDevices" "utils"    
## [7] "datasets"  "methods"   "base"

4 Importar datos en R

Hasta el momento solamente hemos visto como importar archivos .csv en R, desde un ambiente local.Para esta clase vamos a recorrer como importar en R otro tipo de archivos y además como leerlos directamente desde una página web por ejemplo.

4.1 Archivos .txt

Con la función read.table() se puede fácilmente leer archivos de extensión .txt.En el siguiente ejemplo veremos como leer este tipo de archivo desde una dirección web:

##   V1 V2 V3
## 1  1  6  a
## 2  2  7  b
## 3  3  8  c
## 4  4  9  d
## 5  5 10  e

Idealmente, en el argumento file, se debe pasar solamente el nombre y la extensión del archivo, ya que el working directory ya se debería haber configurado previamente.Al usar esta función, por defecto el objeto se convierte en un dataframe.

4.2 Lectura de .csv

Si un archivo de texto esta separado por “,” o “;”, usualmente se lee como un archivo de extensión .csv.Para esto se utiliza la función read.csv :

##   Col1 Col2 Col3
## 1    1    2    3
## 2    4    5    6
## 3    7    8    9
## 4    a    b    c

4.3 Lectura de un archivo delimitado por otro caracter

Si el archivo de texto está separado por otro caracter que no sea tab, “,” o “;”, existe la función read.delim() como variante a read.table()

##   Col1 Col2 Col3
## 1    1    2    3
## 2    4    5    6
## 3    7    8    9
## 4    a    b    c

4.4 Importar y leer datos de excel

Para los ex amantes de excel, R también provee una forma sencilla y flexible de leer datos en este formato.Para esto vamos a utilizar el paquete readxl para facilitar la manipulación:

## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:lubridate':
## 
##     intersect, setdiff, union
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## New names:
## * `` -> ...15
## * `` -> ...16
## # A tibble: 6 x 16
##   `Año` Institucion    Cod `Tipo de proced… `Actualizado al`
##    <dbl> <chr>        <dbl> <chr>            <chr>           
## 1   2017 DIRECCION … 3.01e9 LICITACION PUBL… 30/04/2019 06:0…
## 2   2017 DIRECCION … 3.01e9 LICITACION PUBL… 30/04/2019 06:0…
## 3   2017 DIRECCION … 3.01e9 LICITACION PUBL… 30/04/2019 06:0…
## 4   2017 DIRECCION … 3.01e9 LICITACION PUBL… 30/04/2019 06:0…
## 5   2017 DIRECCION … 3.01e9 LICITACION PUBL… 30/04/2019 06:0…
## 6   2017 DIRECCION … 3.01e9 LICITACION PUBL… 30/04/2019 06:0…
## # … with 11 more variables: `No de procedimiento` <chr>, `Objeto
## #   contractual` <chr>, `Apertura del concurso` <dttm>, `Adjudicacion mas
## #   reciente` <chr>, `Monto adjudicado en colones al año 2017` <chr>,
## #   `Monto adjudicado en colones al corte(*)` <chr>, `Monto
## #   presupuestado` <chr>, Estado <chr>, `ultima modificación` <dttm>,
## #   ...15 <lgl>, ...16 <dbl>

Este paquete a su vez permite realizar algunas otras acciones de manipulación de archivos de excel:

## # A tibble: 150 x 5
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##           <dbl>       <dbl>        <dbl>       <dbl> <chr>  
##  1          5.1         3.5          1.4         0.2 setosa 
##  2          4.9         3            1.4         0.2 setosa 
##  3          4.7         3.2          1.3         0.2 setosa 
##  4          4.6         3.1          1.5         0.2 setosa 
##  5          5           3.6          1.4         0.2 setosa 
##  6          5.4         3.9          1.7         0.4 setosa 
##  7          4.6         3.4          1.4         0.3 setosa 
##  8          5           3.4          1.5         0.2 setosa 
##  9          4.4         2.9          1.4         0.2 setosa 
## 10          4.9         3.1          1.5         0.1 setosa 
## # … with 140 more rows
## [1] "iris"     "mtcars"   "chickwts" "quakes"
## # A tibble: 71 x 2
##    weight feed     
##     <dbl> <chr>    
##  1    179 horsebean
##  2    160 horsebean
##  3    136 horsebean
##  4    227 horsebean
##  5    217 horsebean
##  6    168 horsebean
##  7    108 horsebean
##  8    124 horsebean
##  9    143 horsebean
## 10    140 horsebean
## # … with 61 more rows
## # A tibble: 1,000 x 5
##      lat  long depth   mag stations
##    <dbl> <dbl> <dbl> <dbl>    <dbl>
##  1 -20.4  182.   562   4.8       41
##  2 -20.6  181.   650   4.2       15
##  3 -26    184.    42   5.4       43
##  4 -18.0  182.   626   4.1       19
##  5 -20.4  182.   649   4         11
##  6 -19.7  184.   195   4         12
##  7 -11.7  166.    82   4.8       43
##  8 -28.1  182.   194   4.4       15
##  9 -28.7  182.   211   4.7       35
## 10 -17.5  180.   622   4.3       19
## # … with 990 more rows
## # A tibble: 3 x 3
##   Petal.Length Petal.Width Species
##          <dbl>       <dbl> <chr>  
## 1          1.4         0.2 setosa 
## 2          1.4         0.2 setosa 
## 3          1.3         0.2 setosa
## # A tibble: 3 x 5
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
## 1          5.1         3.5          1.4         0.2 setosa 
## 2          4.9         3            1.4         0.2 setosa 
## 3          4.7         3.2          1.3         0.2 setosa
## # A tibble: 150 x 3
##    Sepal.Width Petal.Length Petal.Width
##          <dbl>        <dbl>       <dbl>
##  1         3.5          1.4         0.2
##  2         3            1.4         0.2
##  3         3.2          1.3         0.2
##  4         3.1          1.5         0.2
##  5         3.6          1.4         0.2
##  6         3.9          1.7         0.4
##  7         3.4          1.4         0.3
##  8         3.4          1.5         0.2
##  9         2.9          1.4         0.2
## 10         3.1          1.5         0.1
## # … with 140 more rows
## # A tibble: 4 x 3
##     cyl  disp    hp
##   <dbl> <dbl> <dbl>
## 1     6   160   110
## 2     6   160   110
## 3     4   108    93
## 4     6   258   110
## # A tibble: 150 x 5
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##           <dbl>       <dbl>        <dbl>       <dbl> <chr>  
##  1          5.1         3.5          1.4         0.2 <NA>   
##  2          4.9         3            1.4         0.2 <NA>   
##  3          4.7         3.2          1.3         0.2 <NA>   
##  4          4.6         3.1          1.5         0.2 <NA>   
##  5          5           3.6          1.4         0.2 <NA>   
##  6          5.4         3.9          1.7         0.4 <NA>   
##  7          4.6         3.4          1.4         0.3 <NA>   
##  8          5           3.4          1.5         0.2 <NA>   
##  9          4.4         2.9          1.4         0.2 <NA>   
## 10          4.9         3.1          1.5         0.1 <NA>   
## # … with 140 more rows

4.5 Lectura de otros tipos de archivos

A continuación se brinda una guía para la lectura de otro tipo de archivos:

Tipo de archivo Paquete Descripción
JSON rjson JsonData <- fromJSON(file= "<filename.json>" )
xml XML xmlfile <- xmlTreeParse("<Your URL to the XML data>")
html RCurl y XML urldata <- getURL(url)data <- readHTMLTable(urldata,stringsAsFactors = FALSE)
SAS,SPSS,etc foreign mySPSSData <- read.spss("example.sav")

4.6 Escritura de archivos

##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa