Я пытаюсь воспроизвести последний график из этого примера: https://www.r-bloggers.com/plotting-individual-observations-and-group-means-with-ggplot2/
У меня получается, когда я использую тот же код и данные из примера. Однако, если я попробую это самостоятельно, это не сработает.
Мои исходные данные - это длинный формат:
> head(summpas)
id session paradigm N mean sd se min firstq median thirdq max
1 1 s1 baseline 20 831.00 692.7155 154.8959 95 326.50 585.5 1327.50 2433
2 1 s1 post1 20 1344.65 1261.5589 282.0931 107 315.25 1008.5 2105.00 4621
3 1 s1 post2 20 1058.05 856.6661 191.5564 105 144.50 1064.0 1915.25 2427
4 1 s1 post3 20 1318.00 1016.1804 227.2248 95 381.75 1289.5 1741.50 3688
6 1 s2 baseline 20 1058.20 1118.8923 250.1919 10 131.00 314.5 1984.25 3042
7 1 s2 post1 20 1909.65 1478.1206 330.5178 59 760.50 1465.0 2808.00 4602
Обобщение, как указано в примере, у меня не работает:
> meansummpas <- summpas %>%
group_by(session, paradigm) %>%
summarise(mean = mean(mean))
> meansummpas
mean
1 949.5366
Поэтому я использую:
library(plyr)
meansummpas <- ddply(summpas, c("session", "paradigm"), summarise,
mean=mean(mean))
Теперь пробую сюжет:
library(ggplot2)
ggplot(summpas, aes(x=paradigm, y=mean, group=id, colour=session)) + geom_line(aes(group=session), alpha=.3) + geom_line(data=meansummpas, alpha=.8, size=3)
Но я получаю сообщение об ошибке:
Don't know how to automatically pick scale for object of type
tbl_df/tbl/data.frame. Defaulting to continuous.
Error: Aesthetics must be either length 1 or the same as the data (8): x, y,
group, colour
Что я заметил, так это то, что данные из примера и мои данные не совсем одного класса (это также относится к необобщенным данным):
class(gd)
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
class(meansummpas)
[1] "data.frame"
Почему я получаю эту ошибку? Что я делаю не так? :) Большое спасибо!!
summpas
содержатid
поверхparadigm
иsession
.meansummpas
содержит толькоparadigm
иsession
. Но это почти доводит меня до конца... Я изменил код на:ggplot(summpas, aes(x=paradigm, y=mean)) + geom_path(aes(colour=session, group=session)) + stat_summary(fun.y=mean, geom='line', aes(group=session))
. Но теперь я хотел бы, чтобы резюмирующая линия была толще, чем остальные линии... 15.09.2017ggplot(summpas, aes(x=paradigm, y=mean)) + geom_path(aes(colour=session, group=session), size=0.1) + stat_summary(fun.y=mean, geom='line', aes(group=session, colour=session), size=1.5)
. Большое спасибо!!!! 15.09.2017