Pregunta

Tengo los resultados de una encuesta. Estoy tratando de crear un gráfico que muestra la relación entre dos variables: "P1" y "Q9.1". "Q1" es la independiente y "Q9.1" es el dependiente. Ambas variables tienen respuestas de preguntas como escala: -2, -1,0,1,2. Un gráfico típico coloca las respuestas en la parte superior de uno al otro - no muy interesante o informativo. Estaba pensando que hexbin sería el camino a seguir. Los datos están en LPP. No he sido capaz de utilizar "P1" y "Q9.1" para x e y. Sin embargo:

> is.numeric("Q1")
[1] FALSE
q1.num <- as.numeric("Q1")
Warning message:
NAs introduced by coercion 

Los valores de Q1 son (cientos de casos de): -2, -1,0,1,2

¿Cómo puedo hacer un gráfico hexbin con estos datos? ¿Hay otro gráfico que debería tener en cuenta?

Los mensajes de error hasta el momento:

Warning messages:
1: In xy.coords(x, y, xl, yl) : NAs introduced by coercion
2: In xy.coords(x, y, xl, yl) : NAs introduced by coercion
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : no non-missing arguments to max; returning -Inf
5: In min(x) : no non-missing arguments to min; returning Inf
6: In max(x) : no non-missing arguments to max; returning -Inf
¿Fue útil?

Solución

¿Qué hay de tomar un enfoque ligeramente diferente? ¿Qué hay de pensar en sus respuestas como factores en lugar de números? Se podría utilizar algo como esto, entonces, para obtener una representación potencialmente útil de sus datos:

# Simulate data for testing purposes
q1 = sample(c(-2,-1,0,1,2),100,replace=TRUE)
q9 = sample(c(-2,-1,0,1,2),100,replace=TRUE)
dat = data.frame(q1=factor(q1),q9=factor(q9))
library(ggplot2)
# generate stacked barchart
ggplot(dat,aes(q1,fill=q9)) + geom_bar()

Es posible que desee interruptor Q1 y Q9 anterior, según la vista de los datos que desea.

Otros consejos

Tal vez ggplot2 de stat_binhex podría ordenar que uno para usted?

Además, me parece scale_alpha útiles para tratar con overplotting.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top