我想创建以下图: x 轴从 1 到 900 代表试验数字。y 轴显示了三个不同的线以及反应时间的移动平均值。每个难度级别(Hard、Medium、Easy)显示一条线。应使用 facet_wrap 为每个参与者显示单独的图。
现在,如果我使用 ggplot 的geom_smooth()
功能,这一切都可以正常工作。像这样:
ggplot(cw_trials_f, aes(x=trial_number, y=as.numeric(correct), col=difficulty)) +
facet_wrap(~session_id) +
geom_smooth() +
ggtitle("Stroop Task")
当我尝试使用动物园库的rollmean
功能时,就会出现问题。这是我尝试过的:
ggplot(cw_trials_f, aes(x=trial_number, y=rollmean(as.numeric(correct)-1, 50, na.pad=T, align="right"), col=difficulty)) +
facet_wrap(~session_id) +
geom_line() +
ggtitle("Stroop Task")
似乎这并没有先根据难度对数据进行分区,然后再应用 rollmean 函数,而是反过来。因此,仅显示了一条线,但显示了所有三种颜色。如何将 rollmean 分别应用于每个类别的试验(简单、中等、困难)?
以下是一些示例数据:
session_id test_number trial_number trial_duration rule concordant switch correct reaction_time difficulty
1 11674020 1 1 1872 word concordant yes yes 1357 Easy
2 11674020 1 2 2839 word discordant no yes 2324 Medium
3 11674020 1 3 1525 color discordant yes no 1025 Hard
4 11674020 1 4 1544 color discordant no no 1044 Medium
5 11674020 1 5 1451 word concordant yes yes 952 Easy
6 11674020 1 6 1252 color concordant yes yes 746 Easy