我有一个问题。我想创建一个包含 4 个不同变量的直方图(4 个变量是指学生的工作量(例如阅读文章的时间(而不是另一个变量(学习计划(。
我使用以下代码尝试了它并收到错误消息,该函数"over"找不到。但是我安装了所有必需的软件包。
hist(c(Workload_FSS18$Q_59953122, Workload_FSS18$Q_59953124, Workload_FSS18$Q_59953126, Workload_FSS18$Q_59953128), over(bpsy), breaks = 10)
我以这种方式尝试了:
if(Workload_FSS18$Q_59953156 == "B.Sc. Psychologie"){
hist(c(Workload_FSS18$Q_59953122, Workload_FSS18$Q_59953124, Workload_FSS18$Q_59953126, Workload_FSS18$Q_59953128))
}
我希望你明白我的意思,有人可以帮助我。
提前谢谢。
根据您的描述,我认为这应该会有所帮助。 将来,请务必添加一些虚拟数据,以便我们更好地了解源数据的外观。
我假设您的数据看起来像这样:
fake_data = data.frame(number_of_classes = c(rnorm(50, mean = 7), rnorm(50, mean = 10)),
hours_studying = c(rnorm(50, mean = 15), rnorm(50, mean = 10)),
homework_assignments = c(rnorm(50, mean = 10), rnorm(50, mean = 7)),
study_program = c(rep('biology',50),rep('math',50)))`
对于 ggplot,数据通常最好以长格式表示:
fake_data_long = data.table::melt(fake_data,id.vars = c('study_program'),
measure.vars = c("number_of_classes",
"hours_studying",
"homework_assignments"))
从这里,您可以有一个重叠的直方图(我的偏好(
ggplot(fake_data_long, aes(x=value, fill = study_program)) +
geom_histogram() +
facet_grid(variable ~ .)
或非重叠直方图:
ggplot(fake_data_long, aes(x=value, fill = study_program)) +
geom_histogram() +
facet_grid(variable ~ study_program)