Sei sulla pagina 1di 20

Lectura y escritura de datos

Lectura y escritura de datos


Gestión datos y herramientas

José Luis Salmerón


salmeron@acm.org

31 de octubre de 2017
Lectura y escritura de datos
Outline

1 Editor de R

2 Datasets

3 Lectura

4 Escritura
Lectura y escritura de datos
Editor de R

Outline

1 Editor de R

2 Datasets

3 Lectura

4 Escritura
Lectura y escritura de datos
Editor de R

El editor de RStudio

Inserción y edición de datos a mano

Aunque R es principalmente un lenguaje de


programación DSL, R tiene un editor de datos muy
básico que le permite ingresar datos directamente
usando la función edit(). Esta función es compatible
con versiones recientes de RStudio.
Para usar el editor de texto R, primero necesita iniciar
una variable. Por ejemplo, para crear un marco de datos
e ingresar manualmente algunos de los datos de la tabla
periódica, escriba lo siguiente:
> elements <- data.frame()
> elements <- edit(elements)
RStudio crea una ventana emergente con un editor
interactivo donde se puede ingresar datos.

Ejemplo

1 Ingrese algunos datos. Luego, para guardar su trabajo,


haga clic en la X en la esquina superior derecha.
Lectura y escritura de datos
Datasets

Outline

1 Editor de R

2 Datasets

3 Lectura

4 Escritura
Lectura y escritura de datos
Datasets

Built-in datasets

Built-in

R incorpora una serie de datasets


para practicar y probar
algoritmos.
Para revisar los datasets escriba
data() en la consola.
Se organizan alfabéticamente y se
agrupan por paquetes.
La lista completa dependerá de
los paquetes instalados.

Ejemplo

1 Revise el dataset ChickWeight


con ?ChickWeight
Lectura y escritura de datos
Lectura

Outline

1 Editor de R

2 Datasets

3 Lectura

4 Escritura
Lectura y escritura de datos
Lectura

Lectura de ficheros

Formato de tabla

Los datos con formato de tabla suelen ser archivos de texto sin formato con tres caracterı́sticas clave que
definen completamente cómo R debe leer los datos:
1 Header o encabezado. Si hay un encabezado, siempre es la primera lı́nea del archivo. Es opcional y se
utiliza para dar nombres a cada columna de datos. Al importar un archivo hay que definir si un
encabezado está presente.
2 Delimitador. Es un carácter utilizado para separar las entradas en cada lı́nea. No se puede usar para
ninguna otra cosa en el archivo.
3 Valores perdidos. Es otra cadena de caracteres única utilizada exclusivamente para denotar un valor
perdido. R convertirá estas entradas en la forma que reconoce: NA.
Estos archivos tienen una extensión .txt o .csv.
Para importar archivos en formato tabla se emplea la función read.table().
Si está leyendo en varios archivos y no desea escribir la ubicación de la carpeta completa cada vez, se puede
configurar su directorio de trabajo con la función setwd() o a través de RStudio.
Puede ver los contenidos de cualquier carpeta usando list.files(). Puede ser difı́cil distinguir entre
archivos y carpetas. Los archivos generalmente tendrán una extensión y las carpetas no.
Se puede seleccionar el fichero de forma interactiva con file.choose(), la cual una vez elegido el fichero
devuelve el nombre y la ruta completa de dicho fichero.
No se almacena información de factores en ficheros de texto plano, pero read.table() convierte los valores
no numéricos en factores por defecto. Para mantener los datos como strings use stringsAsFactors =
FALSE. Para asignar nombres a filas y columnas se emplean los argumentos row.names y col.names.
La lectura de datos desde internet se realiza directamente con read.table().
Lectura y escritura de datos
Lectura

Lectura de ficheros

Ejemplo

1 Se dispone de un archivo en formato de tabla llamado mydatafile1.txt.


2 La primera lı́nea es el encabezado, los valores están delimitados con un
solo espacio, y los valores perdidos se indican con un asterisco (*).
3 Cada nuevo registro comienza en una nueva lı́nea.
4 Cargue el fichero.
5 Compruebe la clase del objeto en que se han cargado los datos.
6 Compruebe que los valores perdidos se han cargado correctamente.
7 Cargue el nombre del fichero con list.files()
8 Cargue el nombre del fichero con file.choose()
9 Convierta sex y funny en factores.
10 Extraiga las observaciones sin valores perdidos y las que los tienen.
11 Cree un data frame con los datos contenidos en
http://www.amstat.org/publications/jse/v9n2/4cdata.txt y ası́gnele a las
columnas como nombres "Carat","Color","Clarity","Cert","Price".
Lectura y escritura de datos
Lectura

Lectura de ficheros (Solución)

Ejemplo

1 Se dispone de un archivo en formato de tabla llamado mydatafile1.txt.


2 La primera lı́nea es el encabezado, los valores están delimitados con un
solo espacio, y los valores perdidos se indican con un asterisco (*).
3 Cada nuevo registro comienza en una nueva lı́nea.
4 Cargue el fichero.
5 Compruebe la clase del objeto en que se han cargado los datos.
6 Compruebe que los valores perdidos se han cargado correctamente.
7 Cargue el nombre del fichero con list.files()
8 Cargue el nombre del fichero con file.choose()
9 Convierta sex y funny en factores.
10 Extraiga las observaciones sin valores perdidos y las que los tienen.
11 Cree un data frame con los datos contenidos en
http://www.amstat.org/publications/jse/v9n2/4cdata.txt y ası́gnele a las
columnas como nombres "Carat","Color","Clarity","Cert","Price".
Lectura y escritura de datos
Lectura

Ficheros CSV

CSV

El formato de archivo CSV utiliza comas para separar los diferentes


elementos en una lı́nea y cada lı́nea en el archivo de texto representa una
sola lı́nea de datos.
Esto hace que los archivos CSV sean idóneos para representar datos
tabulares. Un beneficio adicional de los archivos CSV es que casi cualquier
aplicación de datos admite la exportación de datos al formato CSV.
Si desea abrir un archivo CSV generado por R en una hoja de cálculo,
tenga en cuenta que los separadores decimal y de campo predeterminados
pueden diferir entre R y la hoja de cálculo.
Para leer un CSV se usa read.csv().

Ejemplo

1 Abra el fichero spreadsheetfile.csv conviertiendo la tercera columna en


caracteres y en factores.
2 Revise la estructura de ambos de las dos cargas de datos.
3 Cargue de nuevo el fichero asignando nombre a filas y columnas.
Lectura y escritura de datos
Lectura

Ficheros CSV (Solución)

CSV

El formato de archivo CSV utiliza comas para separar los diferentes


elementos en una lı́nea y cada lı́nea en el archivo de texto representa una
sola lı́nea de datos.
Esto hace que los archivos CSV sean idóneos para representar datos
tabulares. Un beneficio adicional de los archivos CSV es que casi cualquier
aplicación de datos admite la exportación de datos al formato CSV.
Si desea abrir un archivo CSV generado por R en una hoja de cálculo,
tenga en cuenta que los separadores decimal y de campo predeterminados
pueden diferir entre R y la hoja de cálculo.
Para leer un CSV se usa read.csv().

Ejemplo

1 Abra el fichero spreadsheetfile.csv conviertiendo la tercera columna en


caracteres y en factores.
2 Revise la estructura de ambos de las dos cargas de datos.
3 Cargue de nuevo el fichero asignando nombre a filas y columnas.
Lectura y escritura de datos
Lectura

RODBC

Lectura de ficheros de una base de datos

Requiere el paquete RODBC.


SQL se sitúa dentro de comillas dobles y el código R fuera de comillas
dobles.
No necesita establecer la conexión con la base de datos cada vez que la
consulta. Puede conectarse una vez y luego continuar usando esa
conexión cada vez que quiera consultar la base de datos.

Ejemplo

1 Conectarse a una base de datos en R. Consulta la base de datos


DATABASE y devuelve todos los datos (* en SQL) de la tabla
DATATABLE. La tabla está precedida por el esquema SCHEMA y
separada por un punto. Cada una de las palabras en mayúsculas necesita
reemplazarse dentro de la consulta para que la consulta se aplique.
2 Extracción solo los campos especificados de la tabla DATATABLE. Tenga
en cuenta que cargar el paquete RODBC y crear una conexión no tiene
que repetirse si se hicieron con anterioridad. Se incluye para que esté
completo.
Lectura y escritura de datos
Lectura

RODBC

Lectura de ficheros de una base de datos

Requiere el paquete RODBC.


SQL se sitúa dentro de comillas dobles y el código R fuera de comillas
dobles.
No necesita establecer la conexión con la base de datos cada vez que la
consulta. Puede conectarse una vez y luego continuar usando esa
conexión cada vez que quiera consultar la base de datos.

Ejemplo

1 Conectarse a una base de datos en R. Consulta la base de datos


DATABASE y devuelve todos los datos (* en SQL) de la tabla
DATATABLE. La tabla está precedida por el esquema SCHEMA y
separada por un punto. Cada una de las palabras en mayúsculas necesita
reemplazarse dentro de la consulta para que la consulta se aplique.
2 Extracción solo los campos especificados de la tabla DATATABLE. Tenga
en cuenta que cargar el paquete RODBC y crear una conexión no tiene
que repetirse si se hicieron con anterioridad. Se incluye para que esté
completo.
Lectura y escritura de datos
Lectura

Rutas y directorio de trabajo

Paths

La función getwd() dice cuál es el directorio de trabajo actual. Para cambiar el directorio
de trabajo se usa la función setwd(). Asegúrese de que el directorio de trabajo sea un
string. Tenga en cuenta que el separador entre carpetas es una barra inclinada (/)
Para evitar barras diagonales inversas en rutas de archivos, puede usar la función
file.path() para construir rutas de archivos correctas, independientemente del sistema
operativo en el que trabaje.
Para obtener una lista de archivos en una carpeta use list.files() o dir(). son
iguales, pero por backward compatibilidad se mantienen.

Función Descripción Función Descripción


list.dirs() Devuelve directorios file.exists() Chequea si existe un fichero
file.create() Crea un fichero file.remove() Elimina un fichero

Ejemplo

1 Obtenga el directorio de trabajo


2 Cambie el directorio de trabajo
3 Construya una nueva ruta
4 Extraiga los ficheros en la nueva ruta
5 Extraiga los fichero en el directorio de trabajo
Lectura y escritura de datos
Lectura

Rutas y directorio de trabajo (Solución)

Paths

La función getwd() dice cuál es el directorio de trabajo actual. Para cambiar el directorio
de trabajo se usa la función setwd(). Asegúrese de que el directorio de trabajo sea un
string. Tenga en cuenta que el separador entre carpetas es una barra inclinada (/)
Para evitar barras diagonales inversas en rutas de archivos, puede usar la función
file.path() para construir rutas de archivos correctas, independientemente del sistema
operativo en el que trabaje.
Para obtener una lista de archivos en una carpeta use list.files() o dir(). son
iguales, pero por backward compatibilidad se mantienen.

Función Descripción Función Descripción


list.dirs() Devuelve directorios file.exists() Chequea si existe un fichero
file.create() Crea un fichero file.remove() Elimina un fichero

Ejemplo

1 Obtenga el directorio de trabajo


2 Cambie el directorio de trabajo
3 Construya una nueva ruta
4 Extraiga los ficheros en la nueva ruta
5 Extraiga los fichero en el directorio de trabajo
Lectura y escritura de datos
Escritura

Outline

1 Editor de R

2 Datasets

3 Lectura

4 Escritura
Lectura y escritura de datos
Escritura

Escritura local de datos

Escritura de ficheros en disco

La función tempfile() devuelve un nombre para un archivo temporal.


Para escribir ficheros con formato de tabla en disco se usa
write.table(). Como argumento se pasa un data frame y dicha función
escribe su contenido en un nuevo archivo con un nombre, separador y
valores perdidos.
La función write.csv() se emplea para escribir ficheros CSV. El
argumento row.names()= FALSE indica que no se le agreguen nombres a
las filas.

Ejemplo

1 Escribir un csv del dataset iris y compruebe su estructura


2 Borre el fichero creado
Lectura y escritura de datos
Escritura

Escritura local de datos

Escritura de ficheros en disco

La función tempfile() devuelve un nombre para un archivo temporal.


Para escribir ficheros con formato de tabla en disco se usa
write.table(). Como argumento se pasa un data frame y dicha función
escribe su contenido en un nuevo archivo con un nombre, separador y
valores perdidos.
La función write.csv() se emplea para escribir ficheros CSV. El
argumento row.names()= FALSE indica que no se le agreguen nombres a
las filas.

Ejemplo

1 Escribir un csv del dataset iris y compruebe su estructura


2 Borre el fichero creado
Lectura y escritura de datos
Escritura

Lectura y escritura de datos


Gestión datos y herramientas

José Luis Salmerón


salmeron@acm.org

31 de octubre de 2017

Potrebbero piacerti anche