Вот пример кода проблемы, с которой я столкнулся:
set.seed(1)
group1 <- sample(c(1, 0), size=200, replace=T)
group2 <- sample(c(1, 0), size=200, replace=T)
score <- rnorm(200) + .5*group1 + 2.2*group2 - 1.7*group1*group2
d <- data.frame(score=score, group1=as.factor(group1), group2=as.factor(group2))
k <- d %>%
group_by(group1, group2) %>%
summarize(mean=mean(score), median=median(score))
k <- gather(k, "estimate", "value", mean, median)
p <- ggplot(data=d, aes(x=group1, y=score, colour=group2)) +
geom_jitter(alpha = .3) +
geom_point(data=k, aes(y=value, shape=estimate), size=3, position=position_dodge(width=.2))
Что производит эту графику:
Все идет нормально. Теперь, когда я пытаюсь соединить линии так, как они мне нужны:
p + geom_line(data=k, aes(y=value, linetype=estimate, group=estimate))
Я получаю сообщение об ошибке:
Error: geom_path: If you are using dotted or dashed lines, colour, size and linetype must be constant over the line
Любые идеи, почему это происходит и как это исправить?
Я видел в Интернете другие решения по их подключению, но все они предполагают, что пользователь использует одни и те же наборы данных как для базовой aes, так и для geom_line. Здесь это разные наборы данных.