Importar datos a R: leer archivos CSV, Excel, SPSS, Stata, SAS

Tabla de contenido:

Anonim

Los datos pueden existir en varios formatos. Para cada formato, R tiene una función y un argumento específicos. Este tutorial explica cómo importar datos a R.

En este tutorial, aprenderá

  • Leer CSV
  • Leer archivos de Excel
  • readxl_example ()
  • read_excel ()
  • excel_sheets ()
  • Importar datos de otro software estadístico
  • Leer sas
  • Leer STATA
  • Leer SPSS
  • Mejores prácticas para la importación de datos

Leer CSV

Uno de los almacenes de datos más extendidos son los formatos de archivo .csv (valores separados por comas). R carga una serie de bibliotecas durante el inicio, incluido el paquete utils. Este paquete es conveniente para abrir archivos csv combinados con la función reading.csv (). Aquí está la sintaxis de read.csv

read.csv(file, header = TRUE, sep = ",")

Argumento :

  • archivo : RUTA donde se almacena el archivo
  • encabezado : confirme si el archivo tiene un encabezado o no, de forma predeterminada, el encabezado se establece en VERDADERO
  • sep : el símbolo utilizado para dividir la variable. Por defecto, `,`.

Leeremos el nombre del archivo de datos mtcats. El archivo csv se almacena en línea. Si su archivo .csv se almacena localmente, puede reemplazar la RUTA dentro del fragmento de código. No olvides envolverlo dentro ''. La RUTA debe ser un valor de cadena.

Para usuarios de mac, la ruta de la carpeta de descarga es:

 "/Users/USERNAME/Downloads/FILENAME.csv"

Para usuarios de Windows:

"C:\Users\USERNAME\Downloads\FILENAME.csv"

Tenga en cuenta que siempre debemos especificar la extensión del nombre del archivo.

  • .csv
  • .xlsx
  • .TXT
  • ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)

Producción:

## [1] 12
class(df$X)

Producción:

## [1] "factor"

R, de forma predeterminada, devuelve valores de caracteres como factor. Podemos desactivar esta configuración agregando stringsAsFactors = FALSE.

PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE)class(df$X)

Producción:

## [1] "character"

La clase de la variable X ahora es un personaje.

Leer archivos de Excel

Los archivos de Excel son muy populares entre los analistas de datos. Las hojas de cálculo son fáciles de trabajar y flexibles. R está equipado con una biblioteca readxl para importar hojas de cálculo de Excel.

Usa este código

require(readxl)

para comprobar si readxl está instalado en su máquina. Si instala r con r-conda-essential, la biblioteca ya está instalada. Debería ver en la ventana de comandos:

Producción:

Loading required package: readxl. 

Si el paquete no sale, puede instalarlo con la biblioteca conda o en la terminal, use conda install -c mittner r-readxl.

Utilice el siguiente comando para cargar la biblioteca para importar archivos de Excel.

library(readxl)

readxl_example ()

Usamos los ejemplos incluidos en el paquete readxl durante este tutorial.

Usar código

readxl_example()

para ver todas las hojas de cálculo disponibles en la biblioteca.

Para verificar la ubicación de la hoja de cálculo llamada clippy.xls, simplemente use

readxl_example("geometry.xls")

Si instala R con conda, las hojas de cálculo se encuentran en Anaconda3 / lib / R / library / readxl / extdata / filename.xls

read_excel ()

La función read_excel () es de gran utilidad cuando se trata de abrir extensiones xls y xlsx.

La sintaxis es:

read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE)arguments:-PATH: Path where the excel is located-sheet: Select the sheet to import. By default, all-range: Select the range to import. By default, all non-null cells-col_names: Select the columns to import. By default, all non-null columns

Podemos importar las hojas de cálculo de la biblioteca readxl y contar el número de columnas en la primera hoja.

# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)

Producción:

## [1] 5

excel_sheets ()

El archivo datasets.xlsx se compone de 4 hojas. Podemos averiguar qué hojas están disponibles en el libro de trabajo usando la función excel_sheets ()

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Producción:

[1] "iris" "mtcars" "chickwts" "quakes"

Si una hoja de trabajo incluye muchas hojas, es fácil seleccionar una hoja en particular usando los argumentos de la hoja. Podemos especificar el nombre de la hoja o el índice de la hoja. Podemos verificar si ambas funciones devuelven la misma salida con idéntico ().

example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)

Producción:

## [1] TRUE

Podemos controlar qué celdas leer de 2 formas

  1. Utilice el argumento n_max para devolver n filas
  2. Utilice el argumento de rango combinado con cell_rows o cell_cols

Por ejemplo, establecemos n_max igual a 5 para importar las primeras cinco filas.

# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)

Si cambiamos col_names a FALSE, R crea los encabezados automáticamente.

# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)

iris_no_header

En el marco de datos iris_no_header, R creó cinco nuevas variables llamadas X__1, X__2, X__3, X__4 y X__5

También podemos usar el rango de argumentos para seleccionar filas y columnas en la hoja de cálculo. En el siguiente código, usamos el estilo de Excel para seleccionar el rango de A1 a B5.

# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)

Producción:

## [1] 4 2

Podemos ver que example_1 devuelve 4 filas con 2 columnas. El conjunto de datos tiene un encabezado, por lo que la dimensión es 4x2.

En el segundo ejemplo, usamos la función cell_rows () que controla el rango de filas para devolver. Si queremos importar las filas 1 a 5, podemos establecer cell_rows (1: 5). Tenga en cuenta que cell_rows (1: 5) devuelve el mismo resultado que cell_rows (5: 1).

# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)

Producción:

## [1] 4 5

El ejemplo_2, sin embargo, es una matriz de 4x5. El conjunto de datos de iris tiene 5 columnas con encabezado. Devolvemos las primeras cuatro filas con el encabezado de todas las columnas.

En caso de que queramos importar filas que no comiencen en la primera fila, tenemos que incluir col_names = FALSE. Si usamos range = cell_rows (2: 5), resulta obvio que nuestro marco de datos ya no tiene encabezado.

iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE)iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)

We can select the columns with the letter, like in Excel.# Select columns A and Bcol <-read_excel(example, range =cell_cols("A:B"))dim(col)

Producción:

## [1] 150 2 

Nota: range = cell_cols ("A: B"), devuelve la salida de todas las celdas con un valor no nulo. El conjunto de datos contiene 150 filas, por lo tanto, read_excel () devuelve filas hasta 150. Esto se verifica con la función dim ().

read_excel () devuelve NA cuando aparece un símbolo sin valor numérico en la celda. Podemos contar el número de valores perdidos con la combinación de dos funciones

  1. suma
  2. is.na

Aqui esta el codigo

iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))

Producción:

## [1] 50

Tenemos 50 valores que faltan, que son las filas que pertenecen a la especie setosa.

Importar datos de otro software estadístico

Importaremos diferentes formatos de archivos con el paquete Heaven. Este paquete admite software SAS, STATA y SPSS. Podemos utilizar la siguiente función para abrir diferentes tipos de dataset, según la extensión del archivo:

  • SAS: read_sas ()
  • STATA: read_dta () (o read_stata (), que son idénticos)
  • SPSS: read_sav () o read_por (). Necesitamos verificar la extensión

Solo se requiere un argumento dentro de estas funciones. Necesitamos saber la RUTA donde se almacena el archivo. Eso es todo, estamos listos para abrir todos los archivos de SAS, STATA y SPSS. Estas tres funciones también aceptan una URL.

library(haven)

haven viene con conda r-essential de lo contrario vaya al enlace o en la terminal conda install -c conda-forge r-haven

Leer sas

Para nuestro ejemplo, usaremos el conjunto de datos de admisión de IDRE.

PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)

Producción:

## # A tibble: 6 x 4## ADMIT GRE GPA RANK##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Leer STATA

Para archivos de datos STATA, puede usar read_dta (). Usamos exactamente el mismo conjunto de datos pero lo almacenamos en un archivo .dta.

PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)

Producción:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Leer SPSS

Usamos la función read_sav () para abrir un archivo SPSS. La extensión de archivo ".sav"

PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)

Producción:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Mejores prácticas para la importación de datos

Cuando queremos importar datos a R, es útil implementar la siguiente lista de verificación. Facilitará la importación de datos correctamente en R:

  • El formato típico de una hoja de cálculo es utilizar las primeras filas como encabezado (generalmente el nombre de las variables).
  • Evite nombrar un conjunto de datos con espacios en blanco; puede llevar a interpretarlo como una variable separada. Alternativamente, prefiera usar '_' o '-'.
  • Se prefieren los nombres cortos
  • No incluya el símbolo en el nombre: ie: exchange_rate _ $ _ € no es correcto. Prefiero nombrarlo: exchange_rate_dollar_euro
  • Utilice NA para los valores perdidos de lo contrario; necesitamos limpiar el formato más tarde.

Resumen

La siguiente tabla resume la función a utilizar para importar diferentes tipos de archivo en R. La columna uno indica la biblioteca relacionada con la función. La última columna se refiere al argumento predeterminado.

Biblioteca

Objetivo

Función

Argumentos predeterminados

utils

Leer archivo CSV

read.csv ()

archivo, encabezado =, VERDADERO, sep = ","

readxl

Leer archivo EXCEL

read_excel ()

ruta, rango = NULL, col_names = TRUE

refugio

Leer archivo SAS

read_sas ()

camino

refugio

Leer archivo STATA

read_stata ()

camino

refugio

Leer archivo de SPSS

read_sav ()

camino

La siguiente tabla muestra las diferentes formas de importar una selección con la función read_excel ().

Función

Objetivos

Argumentos

read_excel ()

Leer n número de filas

n_max = 10

Seleccione filas y columnas como en Excel

rango = "A1: D10"

Seleccionar filas con índices

rango = cell_rows (1: 3)

Seleccionar columnas con letras

rango = cell_cols ("A: C")