다음 플롯을 작성하려고합니다. x- 축은 시험 번호를 나타내는 1에서 900까지갑니다. y 축은 반응 시간의 이동 평균을 갖는 세 가지 다른 선을 보여줍니다. 각 난이도마다 하나의 선이 표시됩니다 (Hard, Medium, Easy). facet_wrap을 사용하여 각 참여자별로 별도의 플롯이 표시되어야합니다.ggplot : 인수를 인수로 전달할 때 별도의 y- 선 그리기
이제 ggplot의 geom_smooth()
기능을 사용하면이 모든 것이 잘 작동합니다. 이처럼 : 나는 동물원 라이브러리의 rollmean
기능을 사용하려고하면
ggplot(cw_trials_f, aes(x=trial_number, y=as.numeric(correct), col=difficulty)) +
facet_wrap(~session_id) +
geom_smooth() +
ggtitle("Stroop Task")
문제가 발생합니다. 여기에 내가 뭘하려 :
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)은 각 카테고리의 시험 (Easy, Medium, Hard)에 별도로 적용 할 수 있습니까? 여기
일부 샘플 데이터입니다 : 그래서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
ggplot 내에서 레이어간에 미적인 매핑을 이동하여이 작업을 수행 할 수있는 방법이 있지만 정말로 'aes'내부에서 'rollmean'을 호출하면 안됩니다. 'ddply'를 사용하여 롤링 평균을 새로운 변수로 먼저 계산 한 다음 플로팅을 수행하십시오. – joran
고마워요! 이 일을 마치고 아래 코드를 게시했습니다. –