manual r project capítulo 4 estadística

Upload: someone

Post on 15-Oct-2015

42 views

Category:

Documents


1 download

DESCRIPTION

Manual R project capítulo 4 estadística Escarela

TRANSCRIPT

  • 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 datosExisten 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

    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

    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. CAPITULO 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 datos

  • 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 datosLa 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.

    CAPITULO 4. LOS MARCOS DE DATOS

    4.2. La edicion de marcos de datos

    La funcion 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 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. CAPITULO 4. LOS MARCOS DE DATOS

    4.3. Obtener informacion de marcos de datos

    Hay diferentes operaciones para obtener informacion contenida en un marco de datos.

    Para listar los nombres de las columnas o variables se usa la funcion names() escribiendo dentro

    del parentesis el nombre del marco de datos del cual se requiere la informacion.

    Ejemplo 4.7. Dando la instruccion

    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 numeros.

    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

    o

    Pantalla de R Otra manera de asignar los valores de una columna a un objeto

    > velocidad

    o

    Pantalla de R Otra manera de asignar los valores de una columna a un objeto

    > velocidad

    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

    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

    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 ExcelDe 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

    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

    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.