Vous êtes sur la page 1sur 14

55

R para Tod@s: Un Enfoque Aplicado al Anlisis Estadstico Bsico


Captulo 4
Los marcos de datos
Un marco de datos, tambin conocido como base de datos, es un conjunto de datos organizado
en renglones y columnas de tal manera que cada columna corresponde a una variable o carac-
terstica de inters registrada para cada elemento observado y cada rengln contiene informacin
de las diferentes variables sobre cada uno de los elementos o unidades. Las columnas o variables
pueden ser de diferentes tipos; sin embargo, todos los elementos de una misma columna deben
tener el mismo tipo, ya sea numrico, lgico o de caracteres. (Para revisar los tipos de valores en
detalle ve el Captulo 3.2, por favor.) Un marco de datos puede tener una o varias columnas. En
el R los marcos de datos tambin son objetos y forman una parte fundamental para varios anlisis
estadsticos.
4.1. La creacin de marcos de datos
Existen dos formas sencillas de crear marcos de datos en R: por medio de una lnea de comando
o por medio del editor.
4.1.1. El comando de asignacin
Este procedimiento es recomendable cuando el conjunto de datos tiene pocas variables y pocos
elementos. La creacin del marco de datos se obtiene utilizando la funcin data.frame() donde
cada uno de sus argumentos indican el nombre de las variables y los datos que le corresponden.
Ejemplo 4.1. La siguiente instruccin crea el marco de variables salario con las variables PERI-
ODO y SALARIO.
Pantalla de R Crear un marco de datos mediante una lnea de comando
> salario <- data.frame(PERIODO=c(2003, 2004, 2005, 2006),
+ SALARIO=c(4200, 4400, 4550, 4700))
>
Ntese que el comando se puede teclear en una sola lnea, o tambin en dos lneas, seperandolos
despus de un coma, como se indica en este ejemplo (para que quepa el comando completo en
el libro), y entonces R utilizando el prompt + para indicar que el comando contina en el siguiente
rengln (ver Ejemplo 2.2).
0
Gabriel Escarela 56
Universidad Autnoma Metropolitana/ Unidad Iztapalapa/ Divisin de Ciencias Bsicas e Ingeniera
Si se invoca el objeto salario se puede ver el marco de datos creado:
Pantalla de R Ver el marco de datos creados
> salario





>
Ejemplo 4.2. Una forma conveniente de crear un marco de datos cuando los datos se tienen que
capturar manualmente es usando la instruccin
Pantalla de R Crear un marco de datos capturando datos uno por uno
> salario <- read.table(stdin(), col.names=c(PERIODO,SALARIO))
0:
la cual permite que las entradas del marco de datos se ingresen rengln por rengln delimitando
a los valores con espacios. El usuario deber entonces anotar a la derecha de 0: los valores de la
primera pareja separados por un espacio y entonces teclear Enter (). La misma maniobra se
realizar para las siguientes parejas y en la ltima lnea simplemente se teclea Enter. El texto debe
verse entonces como se muestra a continuacin:
Pantalla de R Introducir datos a un marco
0: 2003 4200
1: 2004 4400
2: 2005 4550
3: 2006 4700
4:
>
Este procedimiento es til cuando se desea crear un marco de datos copiando y pegando una
tabla contenida en un archivo en formato de texto cuyos valores se delimitan por espacios.
0
0
0

PERIODO SALARIO
1 2003 4200
2 2004 4400
3 2005 4550
4 2006 4700
57
R para Tod@s: Un Enfoque Aplicado al Anlisis Estadstico Bsico
Catulo 4. Los marcos de datos
4.1.2. El editor de datos
Este procedimiento es recomendable cuando el conjunto de datos es muy grande y debe de in-
gresarse manualmente. El editor para marco de datos se abre con el comando
Pantalla de R Abrir el Data Editor
> edit(data.frame())
Lo que hace que aparezca la ventana Data Editor en la que el usuario puede ingresar los datos en
las celdas de esta hoja uno por uno.
CAP

ITULO 4. LOS MARCOS DE DATOS


Ejemplo 4.3. Para que se guarden los datos, hay que asignar los valores a un objeto. Despues
de ingrear el comando
Pantalla de R Crear un marco de datos mediante el Data Editor
> datos <- edit(data.frame())
solo es necesario hacer clic en el encabezado de las columnas para cambiar los nombres prede-
terminados var1, var2, var3, etc. Esto har a que aparezca la ventana Variable editor donde se
puede cambiar el nombre de la columna e indicar si esta contiene datos de tipo numerico (numeric)
o de caracteres (character). Cuando se cierra la ventana Variable editor aparecen en el editor
las columnas con los nombres indicados. Una vez que se han entrado los valores de los datos y se
cierra la ventana del editor Data Editor, los datos son guardados en el objeto datos.
49
Ejemplo 4.3. Para que se guarden los datos, hay que asignar los valores a un objeto. Despus de
ingrear el comando
Pantalla de R Crear un marco de datos mediante el Data Editor
> datos <- edit(data.frame())
0
0
Gabriel Escarela 58
Universidad Autnoma Metropolitana/ Unidad Iztapalapa/ Divisin de Ciencias Bsicas e Ingeniera
slo es necesario hacer clic en el encabezado de las columnas para cambiar los nombres predeter-
minados var1, var2, var3, etc. Esto har que aparezca la ventana Variable editor donde se puede
cambiar el nombre de la columna e indicar si sta contiene datos de tipo numrico (numeric) o de
caracteres (character). Cuando se cierra la ventana Variable editor aparecen en el editor las colum-
nas con los nombres indicados. Una vez que se han entrado los valores de los datos y se cierra la
ventana del editor Data Editor, los datos son guardados en el objeto datos.
4.2. La edicin de marcos de datos
La funcin edit() permite tener acceso a los datos para modificarlos cuando sea necesario.
Ejemplo 4.4. El comando
Pantalla de R Edicin de un marco de datos
> edit(cars)
abre la ventana Data Editor con los datos ordenados de cars en una tabla, los cuales ya vienen
incluidos en el R.
CAP

ITULO 4. LOS MARCOS DE DATOS


4.2. La edici on de marcos de datos
La funci on edit() permite tener acceso a los datos para modicarlos cuando sea necesario.
Ejemplo 4.4. El comando
Pantalla de R Edicion de un marco de datos
> edit(cars)
abre la ventana Data Editor con los datos ordenados de cars en una tabla, los cuales ya vienen
incluidos en el R.
En esta ventana se pueden editar los datos: cambiar los valores, sobrescribiendo en la celda que se
desea modicar; cambiar el nombre y/o el tipo de variables, abriendo la ventana Variable editor;
agregar valores a cada variable y agregar variables.
50
0
59
R para Tod@s: Un Enfoque Aplicado al Anlisis Estadstico Bsico
Captulo 4. Los marcos de datos
En esta ventana se pueden editar los datos: 1) cambiando los valores, al sobrescribir en la celda
que se desea modificar, 2) cambiando el nombre y/o el tipo de variables, al abrir la ventana Vari-
able editor, y 3) agregando variables y valores a cada variable.
Para guardar las modificaciones realizadas se puede crear un nuevo objeto si se requiere con-
servar el archivo original sin cambios o sobrescribir en el mismo archivo.
Ejemplo 4.5. El comando
Pantalla de R Editar el marco de datos cars y guardar en un nuevo objeto
> coches <- edit(cars)
permite editar el marco de datos cars y guardar los cambios en el nuevo objeto coches, conservan-
do sin cambios el marco de datos original cars. Los nombres de las variables se pueden modificar
dando un clic sobre la palabra speed y cambindola, por ejemplo, a velocidad.
Para ver el contenido del marco de datos coches slo hay que invocar el objeto
Pantalla de R Ver el marco de datos modificado
> coches






>
Ntese que es posible tener acceso a varios marcos de datos que, al igual que cars, vienen ya
incluidos en el R.
Ejemplo 4.6. Con la ejecucin del comando
Pantalla de R Ver la lista de conjuntos de datos disponibles en R
> data()
0
0
0

velocidad dist
1 4 2
2 4 10
3 7 4
[ . . . ]
50 25 85
Gabriel Escarela 60
Universidad Autnoma Metropolitana/ Unidad Iztapalapa/ Divisin de Ciencias Bsicas e Ingeniera
se abre la ventana R data sets en la cual se muestra una lista de conjuntos de datos disponibles.
CAP

ITULO 4. LOS MARCOS DE DATOS


4.3. Obtener informaci on de marcos de datos
Hay diferentes operaciones para obtener informaci on contenida en un marco de datos.
Para listar los nombres de las columnas o variables se usa la funci on names() escribiendo dentro
del parentesis el nombre del marco de datos del cual se requiere la informacion.
Ejemplo 4.7. Dando la instrucci on
Pantalla de R Ver los nombres de los variables
> names(cars)
[1] "speed" "dist"
>
Cada marco de datos tiene etiquetas de renglones, las cuales, si no son denidas por el usuario,
tienen asignados n umeros.
52
4.3. Obtener informacin de marcos de datos
Hay diferentes operaciones para obtener informacin contenida en un marco de datos.
Para listar los nombres de las columnas o variables se usa la funcin names() escribiendo
dentro del parntesis el nombre del marco de datos del cual se requiere la informacin.
Ejemplo 4.7. Dando la siguiente instruccin se muestran los nombres de las variables de cars.
Pantalla de R Ver los nombres de los variables
> names(cars)
[1] speed dist
>
Cada marco de datos tiene etiquetas de renglones, las cuales, si no son definidas por el usuario,
tienen asignados nmeros.
0
61
R para Tod@s: Un Enfoque Aplicado al Anlisis Estadstico Bsico
Captulo 4. Los marcos de datos
Ejemplo 4.8. El comando
Pantalla de R Ver las etiquetas de renglones
> row.names(cars)




>
indica que los renglones son nmeros desde 1 hasta 50. Ntese que el tamao de los renglones se
ajustan al tamao de la ventana de R Console, el cual cambi el autor antes de correr el comando
para que los renglones de los datos quepan en la pgina del libro.
Ejemplo 4.9. Para conocer o verificar el tipo de datos en una columna o de una variable se usa
la funcin class(). La siguiente instruccin indica que el tipo de la variable speed contenida en el
marco de datos cars es numrico.
Pantalla de R Ver el tipo de valores de una columna
> class(cars$speed)
[1] numeric
>
Para tener acceso al contenido de cada una de las columnas o variables individualmente se usa la
funcin attach(), indicando dentro del parntesis el nombre del marco de datos.
Ejemplo 4.10. La instruccin
Pantalla de R Abrir el acceco a los valores de las columnas
> attach(cars)
>
permite tener acceso directo a los datos de speed y dist. Una vez aplicada esta funcin es posible
usar a speed y dist como objetos independientes sin tener que invocar al objeto cars. Esto significa
que ahora R maneja los valores de la columna speed como un objeto y los muestra cuando se
teclea el nombre de la variable:
0
0
0

[1] 1 2 3 4 5 6 7 8 9 10 11 12 13
[14] 14 15 16 17 18 19 20 21 22 23 24 25 26
[27] 27 28 29 30 31 32 33 34 35 36 37 38 39
[40] 40 41 42 43 44 45 46 47 48 49 50
Gabriel Escarela 62
Universidad Autnoma Metropolitana/ Unidad Iztapalapa/ Divisin de Ciencias Bsicas e Ingeniera
Pantalla de R Mostrar los valores de una columna
> speed




>

Ejemplo 4.11. La instruccin
Pantalla de R Cerrar el acceso a los valores de las columnas
> detach(cars)
>
cierra el acceso directo.
No es necesario cerrar el acceso, pero la limpieza es un buen hbito; adems, esto reduce el
riesgo de un choque entre dos objetos diferentes con el mismo nombre.
Ejemplo 4.12. Para extraer los datos de una sola columna y guardarlos en un nuevo objeto se
puede utilizar cualquiera de las siguientes opciones:
Pantalla de R Asignar los valores de una columna a un objeto
> velocidad <- cars$speed
>
o
Pantalla de R Otra manera de asignar los valores de una columna a un objeto
> velocidad <- cars[,speed]
>
o
Pantalla de R Otra manera de asignar los valores de una columna a un objeto
> velocidad <- cars[,1]
>
0
0
0
0
0

[1] 4 4 7 7 8 9 10 10 10 11 11 12 12 12 12 13 13 13 13 14 14 14
[23] 14 15 15 15 16 16 17 17 17 18 18 18 18 19 19 19 20 20 20 20 20 22
[45] 23 24 24 24 24 25
63
R para Tod@s: Un Enfoque Aplicado al Anlisis Estadstico Bsico
Captulo 4. Los marcos de datos
o
Pantalla de R Otra manera de asignar los valores de una columna a un objeto
> velocidad <- cars[[1]]
>
El nmero 1 en los dos ltimos ejemplos indica el nmero de la columna en el marco de datos; en
este caso, speed es la primera columna del marco cars.
Para aplicar un mismo clculo a todas las columnas de un marco de datos es posible usar la
funcin sapply().
Ejemplo 4.13. La instruccin
Pantalla de R Manipular los valores de una columna
> sapply(coches, function(variable){variable+2})






>
suma 2 a todos los valores de cada columna; aqu, variable representa el valor reemplazado en
cada campo del marco de datos coches.
Ejemplo 4.14. Tambin se pueden emplear otras funciones de R en sapply(), tal como calcular
el promedio de cada columna del marco de datos coches:
Pantalla de R Manipular los valores de una columna
> sapply (coches, mean)
velocidad dist
15.40 42.98
>
0
0
0

Velocidad dist
[1,] 6 4
[2,] 6 12
[3,] 9 6
[ . . . ]
[50,] 27 87
Gabriel Escarela 64
Universidad Autnoma Metropolitana/ Unidad Iztapalapa/ Divisin de Ciencias Bsicas e Ingeniera
4.4. La exportacin de marcos de datos
4.4.1. Guardar datos en archivo tipo texto
Para tener portabilidad de datos contenidos en un marco de datos, es posible guardarlo en un ar-
chivo de texto usando la funcin write.table(), indicando en sus argumentos el nombre del marco
de datos el nombre del archivo en el cual se desea guardar los datos y asignando un valor lgico al
parmetro row.names el cual indica si se desea que aparezcan los nombres de los renglones o no.
Ejemplo 4.15. El comando
Pantalla de R Exportar un marco de datos a un documento de texto
> write.table(salario, file=Salario.txt, row.names=FALSE)
>
causa que el contenido del objeto salario, el cual se cre en el Ejemplo 4.1 se guarde en el ar-
chivo de texto Salario.txt. Ntese que el argumento row.names=FALSE causa que no aparezcan
los nombres de los renglones en el archivo. La carpeta en la que se guarda el archivo Salario.txt
corresponde al directorio de trabajo y su contenido es:
Documento de texto Contenido de Salario.txt





4.4.2. Guardar datos en archivo tipo Excel
Es muy comn que el usuario desee exportar un marco de datos al paquete Excel de Microsoft. Una
forma conveniente de hacerlo es guardando el marco de datos en un archivo usando la funcin
write.csv(), la cual funciona de manera similar a write.table(). Aqu el ususario debe cerciorarse de
que el archivo generado tenga la terminacin cvs.
0


PERIODO SALARIO
2003 4200
2004 4400
2005 4550
2006 4700
65
R para Tod@s: Un Enfoque Aplicado al Anlisis Estadstico Bsico
Captulo 4. Los marcos de datos
Ejemplo 4.16. La instruccin
Pantalla de R Exportar un marco de datos a una hoja de clculo de Excel
> write.csv(salario, Salario.csv, row.names=FALSE)
>
guarda los datos de salario en el archivo Salario.csv ubicado en el directorio de trabajo actual. Esto
se puede corroborar al usar el Explorador e ir a la carpeta del directorio de trabajo. Si el usuario
tiene instalado el Excel, el archivo de Salario.csv aparecer con el cono de Excel; al dar doble clic
sobre el cono se abrir el Excel y se mostrarn los datos en la hoja de clculo.
4.5. La importacin de marcos de datos
Frecuentemente el usuario tendr la necesidad de analizar en R marcos de datos que se encuen-
tren encapsulados en un archivo electrnico cuyo formato corresponde a texto simple o a algn
programa o paquete especfico. A continuacin se describen las situaciones ms comunes con las
que el usuario se pueda encontrar cuando desee interactuar con otros paquetes.
4.5.1. Lectura de un archivo tipo texto
La forma universal de compartir datos entre los diversos paquetes estadsticos es simplemente
guardar la informacin en un archivo de tipo texto. Para crear un marco de datos en R importando
la informacin contenida en un archivo de texto, el usuario puede usar la funcin read.table()
cuyos argumentos principales son:
file el nombre del archivo. Si se invoca su nombre sin alguna direccin, R entender que
el archivo se encuentra en el directorio de trabajo actual.
header una variable lgica que le especifica a R si el primer rengln del archivo contiene los
nombres de las columnas (TRUE) o si no lo contiene (FALSE), siendo esta ltima la opcin
predeterminada.
sep el carcter que separa a las columnas. La opcin predeterminada es un espacio
en blanco.
col.names un vector de caracteres cuyas entradas indican los nombres de cada una de las
columnas por leer.
Ejemplo 4.17. Considrese el archivo Salario.txt generado en la seccin anterior (Ejem-
plo 4.15). Para importar los datos y colocarlos en un marco de datos nombrado datos.salario,
el usuario puede usar el comando
0
Gabriel Escarela 66
Universidad Autnoma Metropolitana/ Unidad Iztapalapa/ Divisin de Ciencias Bsicas e Ingeniera
Pantalla de R Importar un marco de datos desde un documento de texto
> datos.salario <- read.table(Salario.txt, header=TRUE)
>
Ntese que el argumento header=TRUE avisa al R que el primer rengln del archivo contiene los
nombres para las columnas o variables. Cuando se invoca el objeto datos.salario se obtiene la
siguiente salida:
Pantalla de R Mostrar los datos del objeto
> datos.salario







>
4.5.2. Importacin de datos de un archivo tipo Excel
De manera anloga a cmo la funcin read.table() lee los datos de un archivo de texto, la funcin
read.csv() lee los datos de un archivo tipo cvs generado por el paquete Excel.
Ejemplo 4.18. La instruccin
Pantalla de R Importar un marco de datos desde una hoja de clculo de Excel
> datos.salario <- read.csv(Salario.csv)
>
asigna al objeto datos.salario el marco de datos del archivo obtenido en el Ejmplo 4.16 el cual se
encuentra en el formato de Excel.
0
0
0

PERIODO SALARIO
1 2003 4200
2 2004 4400
3 2005 4550
4 2006 4700
67
R para Tod@s: Un Enfoque Aplicado al Anlisis Estadstico Bsico
Captulo 4. Los marcos de datos
4.5.3. Importacin de datos de un archivo tipo SPSS
Cuando se trata de importar archivos generados por el paquete SPSS el usuario puede usar la
funcin read.spss(), la cual pertenece al paquete foreign.
Aqu es necesario especificar el nombre del archivo en el primer argumento, el cual debe de
estar escrito entre comillas, e indicar que se desea que se guarden los datos en un marco de datos
con el parmetro to.data.frame=T.
Importante Antes de poder usar la funcin read.spss()
La funcin read.spss() es parte del paquete foreign, el cual debe carguarse antes
de poder usarla. Para cargar dicho paquete, el usuario debe de remitirse al men
principal, dar clic en Paquetes, dar clic en Cargar Paquete ..., seleccionar foreign
en la lista de los paquetes y dar clic en OK.
Ejemplo 4.19. Chen et al. (2003, Captulo 1) analizan con fines ilustrativos del paquete SPSS una
muestra de tamao 400 la cual se encuentra codificada en el archivo elemapi.sav de su pgina de
internet. Esta muestra fue tomada de la base de datos API 2000 de escuelas primarias del Departa-
mento de Educacin del Estado de California la cual mide el aprovechamiento acadmico y otras
cualidades y cantidades tales como tamao del grupo, ingreso, pobreza, etc. Para guardar los datos
de elemapi.sav en el marco de datos elemapi directamente del sito del libro electrnico el usuario
puede ejecutar la siguiente instruccin despus de haber cargado el paquete foreign:
Pantalla de R Importar un marco de datos desde un archivo de SPSS en internet
> elemapi <- read.spss(
+ http://www.ats.ucla.edu/stat/spss/webbooks/reg/elemapi.sav,
+ to.data.frame=T)
>
Como el marco de datos es grande se puede emplear la instruccin page() ilustrada en el Ejemplo
3.12 para visualizar los datos en una ventana aparte:
Pantalla de R Ver el marco de datos
> page(elemapi, method=print)
>
Para la lectura de bases de datos provenientes de los programas Stata, systat y DBF se pueden
emplear, respectivamente, las funciones read.dta(), read.systat() y read.dbf() del paquete foreign
de manera similar a como se usa la funcin read.spss(); en estos tres casos lo ms recomendable
0
0
Gabriel Escarela 68
Universidad Autnoma Metropolitana/ Unidad Iztapalapa/ Divisin de Ciencias Bsicas e Ingeniera
es dejar como nico argumento al nombre entrecomillado del archivo que se desea importar.
Anlogamente, bases de datos provenientes del programa SAS pueden ser importadas usando la
funcin read.xport(); aqu es importante indicar que el archivo con los datos debe de estar en el
formato de transporte SAS XPORT.

Vous aimerez peut-être aussi