В настоящее время я пытаюсь построить несколько линейных графиков (по одному для каждой переменной) с помощью ggplot2.Мои данные в длинном формате, и я использовал функцию summarySE, определенную на этой странице:
http://www.cookbook -r.com / Графики / Plotting_means_and_error_bars_ (ggplot2) /
чтобы получить сводку по переменным во времени переменным, возвращая data.frame с такими вещами, как событие measuremnt, среднее значение для случая и группы и т. д. Выглядит это так для каждой переменной.
TIME Treatment2 N Procrastination sd se ci
0 0 214 2.174342 0.6454869 0.06045539 0.1197730
0 1 206 2.174528 0.6442694 0.06257698 0.1240786
0 2 193 2.115591 0.5767331 0.05980444 0.1187768
1 0 191 2.428571 0.6818945 0.07148197 0.1420114
1 1 198 2.466837 0.7650027 0.07727694 0.1533733
1 2 182 2.184451 0.6437693 0.07109242 0.1414516
2 0 143 2.395349 0.6851585 0.10448569 0.2108607
2 1 154 2.391204 0.8313032 0.11312604 0.2269021
2 2 145 2.375000 0.9784612 0.14586039 0.2939623
Сводка для каждогопеременная служит в качестве входных данных в ggplot, и я получаю ее, если я использую фрейм данных напрямую и передаю аргументы aes () вручную.
#working example graph with procrastination
proc_groups <- summarySE(ESE1718_clean_long,
measurevar="Procrastination",
groupvars=c("TIME", "Treatment2"),
na.rm=TRUE)
pd <- position_dodge(0.05)
ggplot(proc_groups,
aes(x=TIME, y=Procrastination, color=as_factor(Treatment2))) +
geom_errorbar(aes(ymin=Procrastination-ci, ymax=Procrastination+ci),
width=.1, position=pd) +
geom_line(position=pd) +
geom_point(position=pd) +
scale_x_continuous(breaks=c(0, 1, 2), labels=c("T0", "T1", "T2")) +
theme_classic()+
labs(color=as_factor("Treatment Condition"))+
xlab("Measurement occasions")+
ylab("Procrastination")+
ggtitle("Development of Procrastination per treatment condition")
Однако, поскольку у меня много переменныхЯ создал цикл для назначения сводной таблицы для каждой переменной списку.
Я пытаюсь передать это на свой ggplot (см. Код с одним примером из списка)
ggplot(summary_list[[15]],
aes(x=TIME, y=summary_list[[15]][4], color=as_factor(Treatment2))) +
width=.1, position=pd) +
geom_line(position=pd) +
geom_point(position=pd) +
scale_x_continuous(breaks=c(0, 1, 2), labels=c("T0", "T1", "T2")) +
theme_classic()+
labs(color=as_factor("Treatment Condition"))+
xlab("Measurement occasions")+
ylab(colnames(summary_list[[15]][4]))+
ggtitle(paste0("Development of ",
colnames(summary_list[[15]][4]),
" by treatment condition"))
НоЯ получаю следующую ошибку:
Не знаю, как автоматически выбрать масштаб для объекта типа data.frame.По умолчанию для непрерывного.Ошибка в is.finite (x): метод по умолчанию не реализован для типа «список»
Проверка каждой ссылки на список, в котором я свел причину к аргументу aes (), где я заменил measurevar="Procrastination"
с y=summary_list[[15]][4]
Остальное работает.
Как я могу это исправить (ссылаясь на список?)
Это позволило бы написать второй цикл, которыйперебирает каждую сводку в моем списке и создает график для каждой переменной.