Fernanda Cueva del Castillo Campos
Benjamin Perez Zeleny
Josue Manuel Quintero Patino
4 Diciembre 2018
Los archivos necesarios para instalar R, se distribuyen desde el sitio de internet Comprehensive R Archive Network (CRAN), su direccion de internet es la siguiente: R es un sistema, con su propio lenguaje de programacion, para realizar analisis estadisticos y graficos creado por Ross Ihaka y Robert Gentleman. Es de acceso abierto, se distribuye gratuitamente y esta disponible en diferentes formas segun el equipo de computo.
R funciona escribiendo comandos en esta ventana -el editor-
o en la consola -la ventana justo abajo de ésta. En general, los comandos
están compuestos de dos cosas: una función y un objeto. las funciones son simplemente procesamientos que le pedimos a R,
por ejemplo son ejemplos de funciones. Si están leyendo esto en RStudio,
pueden ejecutar cada una de las funciones presionando “ctrl + Enter&rdquo
Normalmente, los resultados de las funciones son asignados a objetos,
lo que permite seguir trabajando con esos resultados.
Por ejemplo, en vez de 2 + 2, podemos escribir Esto asigna el resultado de la función “2 + 2” a un objeto llamado “resultado”
(¡podríamos haber puesto cualquier nombre!)
En la ventana de la derecha (Workspace), RStudio lista los objetos que hemos creado.
La gracia es que ahora podemos seguir trabajando con este objeto: es igual a 5, y si lo ejecutan el resultado va a aparecer en la consola.
Si ejecutan simplemente “resultado”, R entrega el valor asignado a este objeto. Los objetos pueden ser el resultado de cualquier operación La función remove() elimina el objeto de su espacio de trabajo. También pueden
ocupar ls() para ver una lista de los objetos creados. Una de las principales virtudes de R es que el código es abierto (open source),
lo que permite que sea desarrollado y actualizado permanentemente y que distintas
personas puedan extender este programa desarrollando “paquetes” o “librerías”
para que R sea capaz de realizar nuevos análisis. Por ejemplo, una librería que vamos a ocupar bastante es “psych”, que
incluye una serie de funciones típicamente utilizadas en investigación en psicología. Antes de poder utilizar estas funciones en R, es necesario instalar “psych”.
Para esto, pueden ir a menú “Packages” en la ventana de abajo a la derecha -al
lado de “Help”- presionar el botón “Install Packages” y escribir psych en el
cuadro de diálogo. Esto va a descargar la librería e instalarla en su
computador. Como siempre, también es posible hacer esto ocupando una función,
en este caso: Luego de que una librería ya está instalada, es necesario abrirla antes de poder ocupar
sus funciones. Es una buena idea agregar las librerías utilizadas al comienzo del
archivo con los análisis. La función para cargar una librería instalada es Si abren el archivo de ayuda de esta librería, pueden ver una descripción de todas las nuevas funciones que ahora están disponibles.
Además de funciones, esta librería incluye bases de datos que podemos ocupar como
ejemplos. El comando crea un nuevo objeto, una base de datos llamada “personalidad”, ocupando los datos
disponibles en la librería psych (epi.bfi). La base de datos incluye 13 variables
de personalidad medidas en 231 personas.
Esta información aparece en la ventana de la derecha (Workspace),
donde se listan los objetos que hemos creado en nuestro espacio de trabajo. En RStudio,
pueden hacer click en este objeto para ver los datos, o ejecutar Pueden ver más información sobre esta base de datos ejecutando Simplemente a modo de ejemplo, ahora podemos pedir un dispersiograma que muestra
la relación entre extroversión y apertura a la experiencia. Este comando tiene dos
líneas (aunque podría haberlo escrito en una), por lo que antes de ejecutarlo
tienen que seleccionar ambas. El gráfico que aparece en “Plots” muestra que en general las personas más extrovertidas
tienen también mayores puntajes de apertura a la experiencia. está indentado porque esto facilita su interpretación. La primera línea indica que
el comando será ejecutado usando la base de datos “personalidad”, y la segunda línea
indica que se está pidiendo un gráfico que relacione las variables bfext y bfopen. Abrir una base de datos en R puede ser un proceso complicado. En verdad no tiene por qué ser complicado. Típicamente se ocupa Excel
para digitar los datos de un estudio. Si bien es posible importar directamente
los datos desde Excel, lo más fácil es guardar los datos en formato de texto,
porque es el formato preferido de R. Específicamente, les recomiendo guardar los datos en formato .csv (comma separated
values). Todo lo que tienen que hacer es abrir el archivo Excel, poner “guardar como”
y seleccionar este formato. Abran los datos en Excel, y guardénla como alumnos2012.csv (valores separados por
comas) en la misma carpeta donde está este archivo (ManualR.R). Es posible
abrir el archivo sólo con comandos, pero probablemente la opción más fácil es
abrirlo ocupando un menú. Pueden hacer esto en la ventana de “Workspace” presionando
el botón “Import Dataset”, o pueden ocupar el siguiente comando para abrir un cuadro de
diálogo. Les recomiendo esta segunda opción, porque así queda un registro
de la necesidad de abrir una base de datos para continuar. El comando abre un cuadro de diálogo donde pueden seleccionar el archivo alumnos2012.csv. Les
recomiendo que siempre pongan un comentario indicando el nombre del archivo que hay
que abrir -en beneficio de sus colaboradores y de ustedes mismos. En detalle, este comando hace lo siguiente: Si todo salió bien, ahora tienen un objeto llamado “estudio2012” en su espacio
de trabajo. Pueden hacer click sobre este objeto para mirar los datos. El estudio
incluye 84 variables medidas en 112 alumnos. Si estudio2012.csv está en este directorio, pueden ocupar para cargar el archivo. El comando nos entrega los nombres de todas las variables incluidas en la base de datos. es una función de la librería “psych” que entrega los descriptivos de cada una de las
variables. En cuanto a la calidad de la base de datos lo más importante es revisar el n,
que nos indica la cantidad de personas que contestaron cada pregunta (un n de cero en
una pregunta probablemente refleja un error en la creación de la base de datos) y
el rango de respuesta (min y max). Las preguntas del cuestionario tenían un rango de
1 a 7; claramente habría un error en la base de datos si en alguna pregunta el rango
fuera distinto (de 1 a 34, por ejemplo). Además de esto, describe() entrega una buena cantidad de información descriptiva. El
promedio, la mediana, la desviación estándar y el grado de asimetría (skew). Algunas de las variables tienen un * junto a su nombre. Esto significa
que son variables categóricas (porque están codificadas como texto en la base de datos).
La variable sitsent (situación sentimental) incluía tres opciones, El promedio de esta variable no tiene ningún sentido. R simplemente asigna un número a
cada categoría y la función describe() promedia todas las variables, aunque sean
categóricas. Es común querer transformar una tabla de frecuencia a porcentajes o proporciones. La
función prop.table() hace esta transformación a partir de los resultados de
table(): La información descriptiva entregada con el comando describe() es más que suficiente
para tener una buena idea del comportamiento de las variables. En general,
vamos a estar interesados en el promedio (mean), la mediana (median) y la desviación
estándar (sd). Todos estos indicadores pueden ser solicitados con su propio comando. En la mayoría de las situaciones vamos a querer referirnos a variables específicas,
no a la base de datos completa como hicimos con describe(estudio2012). Como en R
podemos tener múltiples bases de datos en nuestro espacio de trabajo,
es necesario indicar tanto el nombre de la variable como la base de datos a la
que pertenece. Hay dos formas principales para hacer esto, y pueden ocupar
cualquiera de las dos dependiendo de lo que sea más fácil para cada situación. La primera es ocupar el signo $ para indicar base de datos y el nombre de la variable: En este comando, se pide el promedio de la variable “insom1” en la base de datos
“estudio2012”. La función mean() requiere especificar qué hacer con los datos
perdidos (la gente que no contesta). na.rm=TRUE simplemente le dice a R que ignore
a estos participantes para calcular el promedio. La otra forma, que ya ocupamos más arriba, es con el comando with(). Esto es especialmente útil cuando queremos ocupar varias variables. El comando crea una nueva base de datos -ocupando la función data.frame()- que sólo tiene la
información de los ítems de insomnio. Esto permite hacer análisis con la escala
completa sin tener que volver a escribir cada variable. Otras funciones descriptivas son: y summary(), que es más o menos equivalente a describe() pero no requiere
cargar una librería. Además de indicadores descriptivos básicos como el promedio y la desviación estándar,
muchas veces nos interesa revisar la distribución de una variable. El item insom1 es
un buen indicador general de insomnio: “Generalmente me cuesta conciliar el sueño
o despierto muchas veces en la noche”. A partir de los descriptivos, podemos observar que los niveles de insomnio están aproximadamente en el punto medio
de la escala (M = 3.44), que hay una variación considerable entre los participantes
(SD = 2.03), y que la distribución es algo asimétrica: la mayoría de los participantes
están a la izquierda de la distribución (Skew = .46). Esto es visible también
a partir de una simple tabla de frecuencia: En esta tabla, queda claro que hay una importante variación en el grado de acuerdo
con este ítem, aunque hay más personas en desacuerdo que de acuerdo. En vez de mirar
un montón de números, podemos pedirle a R que nos dibuje un gráfico. El comando dibuja un gráfico de barras con la información de la tabla que pedimos antes.
Además de los datos para el gráfico, podemos agregar un título y otras cosas. Abajo vamos a pedir el mismo gráfico, pero agregando opciones para mejorar
la presentación: Estas opciones están disponibles, con la misma sintaxis, para todo tipo de gráficos.
Si están ocupando RStudio, pueden guardar el gráfico como imagen, pdf, o simplemente
copiarlo en la memoria (para pegarlo en Word, por ejemplo) seleccionando la opción
correspondiente en el botón “Export”. Si apretan el botón “Zoom”, el gráfico
se abre en una nueva ventana, lo que puede ser útil para cambiar sus dimensiones.
En ese caso hay que hacer click derecho para copiarlo o exportarlo. Cuando las variables son continuas, hacer una tabla de frecuencia es poco práctico
y no entrega información útil. Consideremos por ejemplo el promedio de todos los ítems
de insomnio: Esta escala sigue siendo de 1 a 7, pero ahora tiene valores relativamente continuos.
Por este motivo, hacer una tabla de frecuencia es una mala idea: La solución es hacer un histograma. Los histogramas grafican una tabla de intervalos,
donde queremos saber cuántas personas tienen puntajes entre 1 y 2, 2 y 3, etc.
El comando es simplemente: Al igual que en los gráficos anteriores, podemos agregar opciones para mejorar la
presentación. ¿Por qué no ocupamos desde un comienzo hist() para hacer el gráfico de frecuencias?
Los histogramas están diseñados para variables continuas (por eso las barras están
juntas), y desgraciadamente R se confunde cuando le ponemos una variable discreta,
como el primer item de la escala. dibuja una situación muy distinta, y menos preocupante, que la situación real: De todas formas, esto es un error con la función hist(), que está sumando a las
personas que marcan 1 y las que marcan 2 en la primera barra. Espero que lo solucionen
pronto. La función truehist() de la librería MASS no tiene este problema. El punto que hay que recordar es que los histogramas son para variables continuas,
no para variables discretas. Podemos ocupar el mismo comando que ocupamos antes (barplot) para hacer un gráfico
con los promedios de múltiples variables. Por ejemplo, Simplemente, la función barplot() saca los datos de una tabla de promedios
en vez de una tabla de frecuencia. Abajo les copio un comando para el mismo gráfico, pero con mejor presentación.
Como ven, indentar y poner comentarios es más útil cuando los comandos son más largos. Si bien muchas veces basta con graficar los promedios, también es bueno incluir más
información -dispersión y asimetría, por ejemplo. Una forma simple de hacerlo es
con un boxplot. R tiene un comando especialmente para este tipo de gráficos: Simple, ¿cierto? Abajo lo copio con algunas opciones para mejorar la presentación. Si no hubiéramos hecho la base de datos con los ítems de insomnio, el comando
sería un poco más largo. Abajo está hecho para los ítems de ansiedad ante las
evaluaciones: Esta vez pusimos nombres descriptivos a los distintos ítems, por lo que probablemente
es necesario abrir el gráfico en una nueva ventana para verlos bien (apretando Zoom). La base de datos alumnos2012.csv que importamos incluía una serie de variables
que identifican distintos grupos a los que pertenecen las personas. Por ejemplo,
si son hombres o mujeres, o su situación sentimental. Estas variables están codificadas como texto, y en los casos en que alguien no contestó
estas preguntas (3 personas no indicaron su género y 1 persona no indicó su situación
sentimental) los datos tienen simplemente una celda vacía. Todo esto significa que tenemos que hacer algo de trabajo antes de poder ocupar estas
variables para nuestros análisis. Por ejemplo, si hacemos un gráfico de barras para
situación sentimental, Vemos que hay una barra extra con la persona que prefirió no contestar esta pregunta. Las variables categóricas son importantes y las vamos a ocupar para una serie de
análisis, por lo que vale la pena hacer un procesamiento preliminar de los datos. El siguiente comando crea una nueva variable -sitsentf- en la base de datos estudio2012
donde se seleccionan solamente los grupos que nos interesan. El comando imprime todos los datos de esta variable en la consola. El participante
52 ahora tiene Cuando pedimos la tabla, ahora ya no incluye a este
participante: La base de datos, ahora incluye al final una nueva variable “sitsentf”. Esta variable está en la base de
datos estudio2012 que tenemos en nuestro espacio de trabajo. No en el archivo
alumnos2012.csv. Vamos a hacer el mismo procesamiento con genero y con orientación política Una de las cosas más simples que podemos querer hacer con este tipo de variables
es describir la cantidad de personas que pertenecen a cada grupo, por ejemplo
a través de gráficos de barra Si quieren hacer un gráfico de torta, el comando es pie() También es común querer cruzar dos tablas de frecuencia (crosstabs),
lo que se hace simplemente agregando otra variable al comando table(): ¿Cómo podemos graficar esto? Una buena opción es ocupar nuevamente un gráfico
de barras. Para hacer que cada grupo tenga una barra, hay que ocupar el argumento “beside”. Por último, es común querer comparar los grupos en una o más variables continuas,
como querer ver los niveles de insomnio separado por hombres y mujeres.
En un boxplot, podemos ocupar el signo ~ para indicar que se quiere separar por grupos.
En general, ~ significa “predicho por” en R. (En mi computador, tengo que presionar
alt+ñ para escribir este tilde, pero eso va a depender de la configuración
de su teclado). R es una excelente y poderosa herramienta para el procesamiento de datos, que nos puede ayudar el ambito academico, de investigacion y profesional sin necesidad de pagar costososas licencias, ademas de que siempre se est desarrollando y esta actualiado.
R para Principiantes; Emmanuel Paradis; Institut des Sciencies de'l Evolution, Universit Montpellier II; France.
Josef Cohen and Jeremiah Y. Cohen, Statistics and Data with R, an applied approach through examples.
RMichael Crawley, The R book.
https://es.wikipedia.org/Xwiki/RStudio (https://es.wikipedia.org/Xwiki/RStudio)
https://sites.google.com/site/mab405investigacion/documentos
https://cran.rproject.org/ (https://cran.rproject.org/)
Introducción a R
2 + 2 # o
## [1] 4
mean(c(1,4,7,3,2)) # o incluso
## [1] 3.4
help(mean)
resultado = 2+2 # (apreten "ctrl + Enter" para crear el objeto)
resultado + 1
## [1] 5
resultado
## [1] 4
ls()
## [1] "resultado"
Librerías de R
install.packages("psych") # El progreso de la instalación aparece en la consola.
library(psych)
help(psych)
personalidad = epi.bfi # la librería psych tiene que estar instalada y cargada
View(personalidad)
help(epi.bfi)
with(personalidad,
plot(bfext,bfopen))
with(personalidad,
plot(bfext,bfopen))
Explorando una base de datos
estudio2012 = read.csv(file.choose(),
header = TRUE) # abrir archivo alumnos2012.csv
estudio2012 = read.csv(file.choose(), # abrir archivo alumnos2012.csv
header = TRUE,
sep=";") # Ocupar ; como separador
estudio2012 = # crea un objeto llamado estudio2012
read.csv( # lee un archivo .csv
file.choose(), # abre un cuadro de diálogo para elegir un archivo
header = TRUE # indica que la primera línea del archivo
) # incluye los nombres de las variables.
getwd() # obtiene su directorio de trabajo
estudio2012 = read.csv("alumnos2012.csv", header = TRUE) # o agregando sep = ";"
names(estudio2012)
describe(estudio2012)
head(describe(estudio2012)) # solo los primeros casos
## vars n mean sd median trimmed mad min max range skew
## n 1 112 56.50 32.48 56.5 56.50 41.51 1 112 111 0.00
## sitsent* 2 112 2.94 0.98 3.0 2.93 1.48 1 4 3 0.07
## desconf1 3 111 4.47 1.66 5.0 4.54 1.48 1 7 6 -0.51
## desconf2 4 111 3.45 1.80 3.0 3.37 2.97 1 7 6 0.19
## desconf3 5 111 2.81 1.66 2.0 2.64 1.48 1 7 6 0.63
## desconf4 6 109 4.61 1.63 5.0 4.69 1.48 1 7 6 -0.46
## kurtosis se
## n -1.23 3.07
## sitsent* -1.85 0.09
## desconf1 -0.52 0.16
## desconf2 -1.09 0.17
## desconf3 -0.66 0.16
## desconf4 -0.68 0.16
table(estudio2012$sitsent)
##
## En una relacion Es complicado Soltero/a
## 1 54 8 49
x = table(estudio2012$sitsent) # asigna la tabla al objeto x
prop.table(x) # proporciones por celda
prop.table(x, 1) # proporciones por fila
prop.table(x, 2) # proporciones por columna
Descriptivos.
mean(estudio2012$insom1, na.rm=TRUE)
## [1] 3.441
help(with)
insomnio = with(estudio2012,
data.frame(insom1, insom2, insom3, insom4, insom5))
describe(insomnio)
## vars n mean sd median trimmed mad min max range skew kurtosis
## insom1 1 111 3.44 2.03 3.0 3.30 2.97 1 7 6 0.46 -1.16
## insom2 2 111 3.27 2.00 3.0 3.10 2.97 1 7 6 0.49 -1.09
## insom3 3 110 3.10 2.00 2.5 2.93 2.22 1 7 6 0.48 -1.19
## insom4 4 110 4.08 2.20 4.0 4.10 2.97 1 7 6 0.04 -1.46
## insom5 5 110 3.88 2.27 4.0 3.85 2.97 1 7 6 0.08 -1.47
## se
## insom1 0.19
## insom2 0.19
## insom3 0.19
## insom4 0.21
## insom5 0.22
sd(estudio2012$insom1, na.rm=TRUE)
## [1] 2.035
median(estudio2012$insom1, na.rm=TRUE)
## [1] 3
summary(insomnio)
## insom1 insom2 insom3 insom4 insom5
## Min. :1.00 Min. :1.00 Min. :1.0 Min. :1.00 Min. :1.00
## 1st Qu.:2.00 1st Qu.:2.00 1st Qu.:1.0 1st Qu.:2.00 1st Qu.:2.00
## Median :3.00 Median :3.00 Median :2.5 Median :4.00 Median :4.00
## Mean :3.44 Mean :3.27 Mean :3.1 Mean :4.08 Mean :3.88
## 3rd Qu.:5.00 3rd Qu.:5.00 3rd Qu.:5.0 3rd Qu.:6.00 3rd Qu.:6.00
## Max. :7.00 Max. :7.00 Max. :7.0 Max. :7.00 Max. :7.00
## NA's :1 NA's :1 NA's :2 NA's :2 NA's :2
Tablas y gráficos de frecuencia.
describe(estudio2012$insom1)
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 111 3.44 2.03 3 3.3 2.97 1 7 6 0.46 -1.16 0.19
table(estudio2012$insom1)
##
## 1 2 3 4 5 6 7
## 22 24 21 10 7 15 12
barplot(table(estudio2012$insom1))
barplot(table(estudio2012$insom1), # datos del gráfico
main="Insomnio en estudiantes", # título principal
xlab="Grado de acuerdo", # etiqueta eje horizontal
ylab="Frecuencia", # etiqueta eje vertical
col="lightblue" # cambio de color. ver colors()
)
estudio2012$insom = with(insomnio,
(insom1 + insom2 + insom3 + insom4 + insom5)/5)
describe(estudio2012$insom)
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 108 3.57 1.43 3.4 3.51 1.48 1 7 6 0.32 -0.67 0.14
table(estudio2012$insom)
##
## 1 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4 4.2 4.4 4.6
## 1 6 4 4 5 4 4 4 9 3 4 9 1 8 5 5 3 3
## 4.8 5 5.2 5.4 5.8 6.2 6.4 6.6 6.8 7
## 1 7 8 2 1 2 1 2 1 1
barplot(table(estudio2012$insom))
hist(estudio2012$insom)
hist(estudio2012$insom, # datos del gráfico
main="Histograma escala de Insomnio", # título principal
xlab="Grado de acuerdo", # etiqueta eje horizontal
ylab="Frecuencia", # etiqueta eje vertical
col="lightgray" # cambio de color
)
hist(estudio2012$insom1)
barplot(table(estudio2012$insom1))
Medidas de tendencia central
colMeans(insomnio, na.rm=TRUE) # imprime una tabla con los promedios de los ítems
## insom1 insom2 insom3 insom4 insom5
## 3.441 3.270 3.100 4.082 3.882
barplot(colMeans(insomnio, na.rm=TRUE)) # grafica esta tabla
barplot(colMeans(insomnio, na.rm=TRUE),
main="Promedios itemes escala insomnio", # título principal
ylab="Grado de acuerdo", # etiqueta eje vertical
names=c("Item 1", "Item 2",
"Item 3", "Item 4", "Item 5"), # Nombres para las variables
col=rainbow(20, alpha = .6), # R incluye también paletas de color.
# pueden ejecutar help(rainbow)
# para más información
ylim=c(1,7), # la pregunta era de 1 a 7.
xpd=F) # Es necesario para que las barras no comiencen en el valor 0
boxplot(insomnio)
boxplot(insomnio,
main="Itemes escala insomnio",
ylab="Grado de acuerdo",
names=c("Item 1", "Item 2", "Item 3", "Item 4", "Item 5"),
col=rainbow(5, alpha = .3)
)
with(estudio2012,
boxplot(data.frame(ansev1, ansev2, ansev3, ansev4, ansev5),
main="Ansiedad ante evaluaciones",
sub="Frecuencia de distintas conductas en periodos de evaluacion",
ylab="Frecuencia conductas",
names=c("Dificultad dormir", "Despertar frecuente",
"Irritable", "Dolores", "Incapacidad de desconectarse"),
col=rainbow(5, alpha = .3))
)
Comparando distintos grupos.
table(estudio2012$genero)
##
## Femenino Masculino
## 3 82 27
table(estudio2012$sitsent)
##
## En una relacion Es complicado Soltero/a
## 1 54 8 49
barplot(table(estudio2012$sitsent))
estudio2012$sitsentf = factor(estudio2012$sitsent,
# Esto crea una variable nueva a partir de sitsent,
# considerándola como un factor (una variable categórica)
# por eso le puse el nombre sitsentf
levels=c("En una relacion",
"Es complicado", "Soltero/a"))
# Esto selecciona los niveles que nos interesan, es decir,
# sin incluir las personas que no contestaron.
estudio2012$sitsentf
## [1] En una relacion En una relacion Soltero/a Soltero/a
## [5] Soltero/a Soltero/a Es complicado Soltero/a
## [9] Soltero/a En una relacion Soltero/a En una relacion
## [13] En una relacion Soltero/a En una relacion En una relacion
## [17] Soltero/a En una relacion En una relacion Soltero/a
## [21] Es complicado Soltero/a Soltero/a Soltero/a
## [25] En una relacion En una relacion Es complicado En una relacion
## [29] En una relacion En una relacion En una relacion Soltero/a
## [33] Es complicado Soltero/a En una relacion En una relacion
## [37] En una relacion Soltero/a En una relacion En una relacion
## [41] En una relacion Soltero/a Es complicado Es complicado
## [45] Soltero/a Soltero/a Es complicado En una relacion
## [49] Soltero/a Soltero/a Soltero/a <NA>
## [53] Soltero/a Soltero/a Soltero/a Soltero/a
## [57] En una relacion En una relacion Soltero/a Soltero/a
## [61] En una relacion En una relacion En una relacion Soltero/a
## [65] En una relacion Soltero/a Soltero/a En una relacion
## [69] Soltero/a En una relacion Soltero/a En una relacion
## [73] Soltero/a Soltero/a En una relacion En una relacion
## [77] Soltero/a En una relacion En una relacion Soltero/a
## [81] En una relacion En una relacion En una relacion Soltero/a
## [85] En una relacion En una relacion Soltero/a En una relacion
## [89] En una relacion Soltero/a En una relacion Soltero/a
## [93] En una relacion Soltero/a En una relacion En una relacion
## [97] En una relacion En una relacion Soltero/a En una relacion
## [101] Soltero/a En una relacion Es complicado Soltero/a
## [105] En una relacion Soltero/a En una relacion Soltero/a
## [109] En una relacion Soltero/a Soltero/a En una relacion
## Levels: En una relacion Es complicado Soltero/a
estudio2012[52,]$sitsentf # muestra la situación sentimental del participante 52 (NA)
## [1] <NA>
## Levels: En una relacion Es complicado Soltero/a
table(estudio2012$sitsentf)
##
## En una relacion Es complicado Soltero/a
## 54 8 49
names(estudio2012)
## [1] "n" "sitsent" "desconf1" "desconf2" "desconf3" "desconf4"
## [7] "desconf5" "vidau1" "vidau2" "vidau3" "vidau4" "vidau5"
## [13] "starb1" "starb2" "starb3" "starb4" "starb5" "ayude1"
## [19] "ayude2" "ayude3" "ayude4" "ayude5" "abor1" "abor2"
## [25] "abor3" "abor4" "abor5" "tolsex1" "tolsex2" "tolsex3"
## [31] "tolsex4" "tolsex5" "intex1" "intex2" "intex3" "intex4"
## [37] "intex5" "acogex1" "acogex2" "acogex3" "acogex4" "acogex5"
## [43] "ansev1" "ansev2" "ansev3" "ansev4" "ansev5" "insom1"
## [49] "insom2" "insom3" "insom4" "insom5" "intui1" "intui2"
## [55] "intui3" "intui4" "intui5" "valma1" "valma2" "valma3"
## [61] "valma4" "valma5" "streu1" "streu2" "streu3" "streu4"
## [67] "streu5" "intay1" "intay2" "intay3" "intay4" "intay5"
## [73] "tprej1" "tprej2" "tprej3" "tprej4" "tprej5" "genero"
## [79] "zodiaco" "orienpol" "mencion" "votop" "herman" "lugar"
## [85] "insom" "sitsentf"
table(estudio2012$genero)
##
## Femenino Masculino
## 3 82 27
estudio2012$generof = factor(estudio2012$genero,
levels=c("Femenino","Masculino"),
labels=c("Mujer","Hombre"))
# con "labels" podemos cambiar los nombres de las
# categorías
table(estudio2012$generof)
##
## Mujer Hombre
## 82 27
table(estudio2012$orienpol)
##
## Centro Centro Derecha Centro Izquierda
## 2 8 18 20
## Derecha Independiente Izquierda Ninguna
## 19 8 18 19
estudio2012$orienpolf = factor(estudio2012$orienpol,
# Al seleccionar los niveles, podemos hacer varias cosas
# con esta variable: ordenarlos de izquierda a derecha,
# omitir los independientes y los que dicen "ninguna",
# y omitir a los que no contestaron. Todos estos van a
# quedar como NA. (por supuesto, para otros análisis
# podríamos querer mantener a los independientes y a los
# que no se identifican)
levels=c("Izquierda","Centro Izquierda","Centro",
"Centro Derecha","Derecha"))
table(estudio2012$orienpolf)
##
## Izquierda Centro Izquierda Centro Centro Derecha
## 18 20 8 18
## Derecha
## 19
Descripción de la muestra.
barplot(table(estudio2012$orienpolf),
col=rainbow(30, alpha=.6))
pie(table(estudio2012$sitsentf),
main="Situacion sentimental estudiantes 2012",
col=terrain.colors(5, alpha = .6),
radius = .8)
table(estudio2012$sitsentf,estudio2012$generof)
##
## Mujer Hombre
## En una relacion 44 9
## Es complicado 4 4
## Soltero/a 33 14
barplot(table(estudio2012$sitsentf, estudio2012$generof),
legend=TRUE, # agrega automáticamente una leyenda
col=heat.colors(3, alpha=.6)
)
barplot(table(estudio2012$sitsentf, estudio2012$generof),
legend=TRUE,
col=heat.colors(3, alpha=.6),
beside=TRUE # esta opción hace que cada grupo tenga una barra
)
boxplot(insom1~sitsentf, data=estudio2012,
main="Problemas de insomnio en relaciones complicadas",
ylab="Insomnio",
col=heat.colors(3,alpha=.6))
Conclusiones
Bibliografia