studio ggplot r ggplot2

studio - Trazando los valores promedio para cada nivel en ggplot2



manual ggplot2 (3)

Otra solución

ggplot(df, aes(x=factor(age), y=score)) + stat_summary(fun.y="mean", geom="bar")

Estoy usando ggplot2 y estoy intentando generar un gráfico que muestra los siguientes datos.

df=data.frame(score=c(4,2,3,5,7,6,5,6,4,2,3,5,4,8), age=c(18,18,23,50,19,39,19,23,22,22,40,35,22,16)) str(df) df

En lugar de hacer una gráfica de frecuencia de las variables (ver código siguiente), quiero generar una gráfica de los valores promedio para cada valor x. Así que quiero trazar el puntaje promedio en cada nivel de edad. A los 18 años en el eje x, podríamos tener un 3 en el eje y para la puntuación. A los 23 años, podríamos tener un puntaje promedio de 4.5 , y así sucesivamente ( Editar : se corrigieron los valores promedio). Esto sería idealmente representado con un gráfico de barras.

ggplot(df, aes(x=factor(age), y=factor(score))) + geom_bar() Error: stat_count() must not be used with a y aesthetic.

Simplemente no estoy seguro de cómo hacer esto en R con ggplot2 y parece que no se puede encontrar nada en esas parcelas. Estadísticamente, no sé si la trama que deseo trazar es lo correcto, pero esa es una tienda diferente.

¡Gracias!


Si te entendiera bien, podrías intentar algo como esto:

library(plyr) library(ggplot2) ggplot(ddply(df, .(age), mean), aes(x=factor(age), y=factor(score))) + geom_bar()


También puede usar aggregate() en base R en lugar de cargar otro paquete.

temp = aggregate(list(score = df$score), list(age = factor(df$age)), mean) ggplot(temp, aes(x = age, y = score)) + geom_bar()