library(ggplot2)library(see)library(tidyverse)# Speichere Anzahl an Personen und Anzahl an# Imputationssetsm=length(implist)n=nrow(implist[[1]])mn=m*n# Fasse Imputationslist zu einem großen data frame zusammendo.call(rbind,implist)%>%mutate(m=rep(1:m,each=n),id=1:mn)->data# Bringe Daten des primären Endpunktes ins Long-Formatdata%>%select(id,m,group,pss.0,pss.1,pss.2)%>%pivot_longer(-c(id,group,m),names_to="time",names_prefix="pss.",values_to="pss")->plot.data# Jitter hinzufügen (vermeidet Overplotting)jitter1=runif(nrow(plot.data),-.05,.05)jitter2=runif(nrow(plot.data),-.5,.5)within(plot.data,{time=as.numeric(time)group=as.factor(group)time.jitter=time+jitter1pss.jitter=pss+jitter2})->plot.data# Splitte Daten nach Zeitpunktenplot.data%>%filter(time!=2)->plot.data.prepostplot.data.prepost%>%filter(time==0)->plot.data.preplot.data.prepost%>%filter(time==1)->plot.data.postplot.data%>%filter(time==2)->plot.data.fu# Generiere Dataframe 'plot.data.means". Dieses Datenset# beinhaltet die Mittelwerte und Konfidenzintervalle des# primären Outcomes (siehe "Functional Programming" für# Möglichkeiten zur Berechnung bei MI).plot.data.means<-data.frame(time=c(0,0,1,1,2,2),group=as.factor(c(0,1,0,1,0,1)),pss=c(25.15152,25.88636,22.92182,17.51364,22.07970,15.91242),lower=c(21.192788,22.038795,16.730593,11.059493,16.078554,9.577042),upper=c(29.11024,29.73393,29.11304,23.96778,28.08085,22.24780))