我想绘制简单的学习曲线。我的数据如下:
id trial type choice
1 1 A 0
1 2 A 1
2 1 B 1
2 2 B 0
structure(list(id = c(2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L,
4L, 4L, 4L, 4L, 4L, 6L, 6L, 6L, 6L, 6L), trial = c(1L, 2L, 3L,
4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L,
5L), choice = c(0L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 1L, 1L), type = structure(c(1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L), .Label = c("A", "A3", "B"), class = "factor")), row.names = c(1L,
2L, 3L, 4L, 5L, 31L, 32L, 33L, 34L, 35L, 61L, 62L, 63L, 64L,
65L, 91L, 92L, 93L, 94L, 95L), class = "data.frame")
ID,Trial和Type是整数,而Choice是一个因素。我想说明不同小组在每次审判中所做的选择。我如何想象图(向量choice
中的1被认为是正确的):
曲线的平滑度是夸张的。
我还想知道如何通过耦合组来进行计算。例如,将试验1到10中A组的所有选择相加。
谢谢您的帮助!
答案 0 :(得分:0)
基本上,您想先汇总数据,然后再绘制数据。例如,如果您的数据存储在名为dplyr
ggplot2
和dd
轻松完成此操作
library(dplyr)
library(ggplot2)
dd %>%
group_by(type, trial) %>%
summarize(correct=mean(choice)) %>%
ggplot() +
geom_line(aes(trial, correct, color=type))
对于每种类型和试验,我们都计算选择的平均值,以获得正确回答的人的百分比。然后,我们为每个试验绘制该值,并用按类型涂上颜色的线。