ggplot!El objetivo del ejercicio 6 lograr familiarizarse con el ploteo de datos, usando el potente paquete ggplot2. También la idea es refinar un poco el análisis de los datos.
Primero vamos a trabajar con los datos de firmas y escalas de personalidad del ejercicio 1. Acá están los datos
Primero que nada, carguen los datos. (¿Se acuerdan? Aquello de load() …)
geom_point(), la escala de narcisismo (NPI16TOTAL) contra la de dominancia social (SDTOTAL) (y vs. x).p1=ggplot(datosLimpios,aes(y=NPI16TOTAL,x=SDTOTAL)) #el mapping= antes de aes se puede omitir si va como segundo argumento...
p1+geom_point()p1+geom_point(aes(col=Sex)) #el col=Sex puede ir en el aes() de la capa base.alpha=0.3 al llamar a geom_point() para que quede más lindo.p1+geom_point(aes(col=Sex,size=Age),alpha=0.3) p2=ggplot(datosLimpios,aes(x=SDTOTAL,y=Sign.Area))
p2+geom_point() p2+geom_point(aes(col=NPI16TOTAL)) p2+geom_point(aes(col=NPI16TOTAL),size=2) alpha=0.5p2+geom_point(aes(col=Sex,size=NPI16TOTAL),alpha=0.5) ggplot(datosLimpios,aes(x=Sign.Area))+geom_histogram()Muy lindo todo, pero este data frame está en formato ancho. Y qué pasa si yo quiero un gráfico de barras para comparar las diferencias entre los sexos para TODAS las escalas de personalidad, y el tamaño de la firma y la aclaración… El formato largo se torna el más fácil de usar en esta situación.
Supongamos que hacer el clásico gráficos de barras de medias (y desvíos?) para comparar visualmente. Primero, tendría que: 1) Generar una columna llamada id en el data frame, cuyo valor corresponda al número de fila del data frame. Tip: la expresión 1:n genera todos los números enteros consecutios del 1 al n.
datosFund$id=1:nrow(datosFund)datosFund=melt(datosLimpios,id=c("id","Sex"),variable.name = "medida",value.name = "valor")ddply(). ¿Van cachando por qué conviene fundir el data frame? Guardar los cálculos en una variable llamda paPlotear.paPlotear=ddply(datosFund,c("medida"),summarize,media=mean(valor,na.rm=T),desvio=sd(valor,na.rm=T))p4=ggplot(paPlotear,aes(x=medida,y=media))
p4+geom_bar(stat="identity")ddply(). Guardar los cálculos en una variable llamda paPlotear2.paPlotear2=ddply(datosFund,c("Sex","medida"),summarize,media=mean(valor,na.rm=T),desvio=sd(valor,na.rm=T))p6=ggplot(paPlotear2,aes(x=medida,y=media,fill=Sex))
p6+geom_bar(stat="identity",position="dodge")geom_errorbar(). Tip: usar position=position_dodge(0.9) también en esta capa. Tip de belleza: pasar width=0.2 como argumento en esta capa para que luzca más bonito.p6+geom_bar(stat="identity",position="dodge") + geom_errorbar(aes(ymin=media-desvio,ymax=media+desvio),position=position_dodge(0.9),width=0.2)