问题描述
我有以下示例数据,这些数据描述了问卷中每个受访者回答每个问题(duration@H_404_2@所需的时间(
question@H_404_2@),以及回答了
week@H_404_2@个问题的时间(同一份问卷有几波)
n <- 100
data2 <- data.frame(
question = paste("q",sample(1:3,n,replace = TRUE),sep=""),week = sample(1:3,duration = round(rnorm(n,mean = 15,sd = 5),0)
)
ggplot(aes(x = week,fill=question),data = data2) + geom_bar(position='stack') +
xlab("Week")
@H_404_2@
但是我如何用平均持续时间而不是计数(在y轴上)绘制相同的图?
解决方法
myObj = [{
name: 'ice',price: 24.76834
},{
name: 'cake',price: 12.1623
},{
name: 'powder',price: 2
}
]
myObj.forEach(a => a.price = a.price.toFixed(2));
console.log(myObj);
是为您执行计算的常用功能:
stat_summary
编辑:另一周,当我发现 ggplot(aes(x = week,y = duration,fill=question),data = data2) +
stat_summary(fun=mean,geom="bar",position = "stack") +
xlab("Week")
图层可以做什么时,这改变了我的做法! Demystifying stat_ layers in ggplot2
我会像这样使用dplyr::group_by
。
data2 %>%
group_by(week,question) %>%
summarise(mean = mean(duration)) %>%
ggplot(aes(week,mean,fill = factor(question))) +
geom_col()
祝你好运!