Hi everyone, I?m trying to do a spaghetti plot and I know I?m doing all wrong, It must be. What I need: 15 subjects, each with measurements over 5 different times (t1, ..., t5), and the variable that I need to represent in the spaguetti plot is given by: PCR = b0 + b1 * ti + epsilon B0, - baseline of each subject B1 - trajectory of each subject over time (so multiply by t) Epsilon - error associated with each subject Regression model with mixed effects. Thus, I generated b0, b1, epsilon and time created sequence. But I need to do spaguetti plot of the outcome and I can not understand how much I search the publications. Sorry for the stupidity, but I do not even know how to do it and I need it with the utmost urgency to finish a publication proposal :( Follows what I tried to do :( :( :( library(ggplot2) library(reshape) library(lattice) library(gtable) library(grid) set.seed(9027) n.longitudinal.observations = 5 # number of PCR measures (per subject) in the hospital period subjects = 15 # Number of simulations (1 per subject in the study) beta0_7_gerar = rnorm(subjects, mean = 1, sd = .5) beta0_7 = as.data.frame(matrix(beta0_7_gerar,nrow=subjects,ncol=1)) # beta 0 - input variable used to calculate PCR (the outcome) beta1_7_gerar = rnorm(subjects, mean = -1, sd = .5) beta1_7 = as.data.frame(matrix(beta1_7_gerar,nrow=subjects,ncol=1) ) # beta 1 - input variable used to calculate PCR (the outcome) tj_gerar = seq.int(1, n.longitudinal.observations, 1) epsilon_7_gerar = rnorm(5*subjects, mean = 0, sd = .1) epsilon_7 = as.data.frame(matrix(epsilon_7_gerar,nrow=subjects,ncol=1) ) # epsilon_7 - input variable used to calculate PCR (the outcome) - associated with each subject tj = as.data.frame(matrix(tj_gerar,nrow=subjects,ncol=1) ) # time point7 <- cbind(beta0_7, beta1_7, tj, epsilon_7) point7 point7 <- as.data.frame(point7) colnames(point7) = c("beta0_7","beta1_7","time", "epsilon_7") y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 $epsilon_7 (the outcome of the study - PCR) y_point7 require(ggplot2) png('test.png') p = ggplot(y_point7, aes(time, y_point7)) + geom_line() print(p) dev.off() savehistory() OR: In the last part I also tried: ID = rep(1:3, each = 5) point7 <- cbind(ID,beta0_7, beta1_7, tj, epsilon_7) point7 point7 <- as.data.frame(point7) colnames(point7) = c("ID","beta0_7","beta1_7","time", "epsilon_7") y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 $epsilon_7 y_point7 crp7 <- y_point7 head(point7, n = 15) ggplot(aes(x = tj_gerar, y = crp7), data = point7) + geom_line(aes(group = ID), color = "gray") + geom_smooth(aes(group = 1), method = "lm", size = 3, color = "red", se = FALSE) + theme_bw() But none of these worked :( I was looking to have something like: Being the outcome PCR and the year the times (1, 2, 3, 4, 5). Can someone help me please? Thanks, Best Rosa
Hi Rosa, You pass a vector to ggplot, which expects a data.frame. I am sure you meant to do this: point7$y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 $epsilon_7 ggplot(point7, aes(time, y_point7)) + geom_line() HTH Ulrik On Wed, 19 Jul 2017 at 20:37 Rosa Oliveira <rosita21 at gmail.com> wrote:> Hi everyone, > > I?m trying to do a spaghetti plot and I know I?m doing all wrong, It must > be. > > What I need: > > 15 subjects, each with measurements over 5 different times (t1, ..., t5), > and the variable that I need to represent in the spaguetti plot is given by: > > PCR = b0 + b1 * ti + epsilon > > B0, - baseline of each subject > B1 - trajectory of each subject over time (so multiply by t) > Epsilon - error associated with each subject > > Regression model with mixed effects. > > Thus, I generated b0, b1, epsilon and time created sequence. > > But I need to do spaguetti plot of the outcome and I can not understand > how much I search the publications. > > Sorry for the stupidity, but I do not even know how to do it and I need it > with the utmost urgency to finish a publication proposal :( > > Follows what I tried to do :( :( :( > > > library(ggplot2) > library(reshape) > library(lattice) > library(gtable) > library(grid) > > > set.seed(9027) > > n.longitudinal.observations = 5 # number of PCR > measures (per subject) in the hospital period > subjects = 15 # Number of > simulations (1 per subject in the study) > > beta0_7_gerar = rnorm(subjects, mean = 1, sd = .5) > beta0_7 > as.data.frame(matrix(beta0_7_gerar,nrow=subjects,ncol=1)) # beta 0 - > input variable used to calculate PCR (the outcome) > beta1_7_gerar = rnorm(subjects, mean = -1, sd = .5) > beta1_7 > as.data.frame(matrix(beta1_7_gerar,nrow=subjects,ncol=1) ) # beta 1 - > input variable used to calculate PCR (the outcome) > > tj_gerar = seq.int(1, > n.longitudinal.observations, 1) > epsilon_7_gerar = rnorm(5*subjects, mean = 0, sd = .1) > epsilon_7 > as.data.frame(matrix(epsilon_7_gerar,nrow=subjects,ncol=1) ) # epsilon_7 > - input variable used to calculate PCR (the outcome) - associated with each > subject > > tj > as.data.frame(matrix(tj_gerar,nrow=subjects,ncol=1) ) # > time > > point7 <- cbind(beta0_7, beta1_7, tj, epsilon_7) > point7 > point7 <- as.data.frame(point7) > > colnames(point7) = c("beta0_7","beta1_7","time", "epsilon_7") > > > y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 > $epsilon_7 (the outcome of the study - PCR) > y_point7 > > require(ggplot2) > > png('test.png') > p = ggplot(y_point7, aes(time, y_point7)) + geom_line() > print(p) > dev.off() > savehistory() > > > > > > > OR: > > In the last part I also tried: > > > ID = rep(1:3, each = 5) > > > point7 <- cbind(ID,beta0_7, beta1_7, tj, epsilon_7) > point7 > point7 <- as.data.frame(point7) > > colnames(point7) = c("ID","beta0_7","beta1_7","time", "epsilon_7") > > > > > > y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 $epsilon_7 > y_point7 > > crp7 <- y_point7 > > head(point7, n = 15) > > > ggplot(aes(x = tj_gerar, y = crp7), data = point7) + > geom_line(aes(group = ID), color = "gray") + > geom_smooth(aes(group = 1), method = "lm", size = 3, color = "red", se > FALSE) + > theme_bw() > > But none of these worked :( > > I was looking to have something like: > > > Being the outcome PCR and the year the times (1, 2, 3, 4, 5). > > Can someone help me please? > > > Thanks, > > Best Rosa > > > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.[[alternative HTML version deleted]]
Thanks for the tip! Ulrik, I've solved the problem with a different code.... Best ;) Ulrik Stervbo <ulrik.stervbo at gmail.com> escreveu em qua, 19/07/2017 ?s 20:28 :> Hi Rosa, > > You pass a vector to ggplot, which expects a data.frame. I am sure you > meant to do this: > > point7$y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 > $epsilon_7 > > ggplot(point7, aes(time, y_point7)) + geom_line() > > HTH > Ulrik > > > On Wed, 19 Jul 2017 at 20:37 Rosa Oliveira <rosita21 at gmail.com> wrote: > >> Hi everyone, >> >> I?m trying to do a spaghetti plot and I know I?m doing all wrong, It must >> be. >> >> What I need: >> >> 15 subjects, each with measurements over 5 different times (t1, ..., t5), >> and the variable that I need to represent in the spaguetti plot is given by: >> >> PCR = b0 + b1 * ti + epsilon >> >> B0, - baseline of each subject >> B1 - trajectory of each subject over time (so multiply by t) >> Epsilon - error associated with each subject >> >> Regression model with mixed effects. >> >> Thus, I generated b0, b1, epsilon and time created sequence. >> >> But I need to do spaguetti plot of the outcome and I can not understand >> how much I search the publications. >> >> Sorry for the stupidity, but I do not even know how to do it and I need >> it with the utmost urgency to finish a publication proposal :( >> >> Follows what I tried to do :( :( :( >> >> >> library(ggplot2) >> library(reshape) >> library(lattice) >> library(gtable) >> library(grid) >> >> >> set.seed(9027) >> >> n.longitudinal.observations = 5 # number of PCR >> measures (per subject) in the hospital period >> subjects = 15 # Number >> of simulations (1 per subject in the study) >> >> beta0_7_gerar = rnorm(subjects, mean = 1, sd = .5) >> beta0_7 >> as.data.frame(matrix(beta0_7_gerar,nrow=subjects,ncol=1)) # beta 0 - >> input variable used to calculate PCR (the outcome) >> beta1_7_gerar = rnorm(subjects, mean = -1, sd = .5) >> beta1_7 >> as.data.frame(matrix(beta1_7_gerar,nrow=subjects,ncol=1) ) # beta 1 - >> input variable used to calculate PCR (the outcome) >> >> tj_gerar = seq.int(1, >> n.longitudinal.observations, 1) >> epsilon_7_gerar = rnorm(5*subjects, mean = 0, sd = .1) >> epsilon_7 >> as.data.frame(matrix(epsilon_7_gerar,nrow=subjects,ncol=1) ) # epsilon_7 >> - input variable used to calculate PCR (the outcome) - associated with each >> subject >> >> tj >> as.data.frame(matrix(tj_gerar,nrow=subjects,ncol=1) ) # >> time >> >> point7 <- cbind(beta0_7, beta1_7, tj, epsilon_7) >> point7 >> point7 <- as.data.frame(point7) >> >> colnames(point7) = c("beta0_7","beta1_7","time", "epsilon_7") >> >> >> y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 >> $epsilon_7 (the outcome of the study - PCR) >> y_point7 >> >> require(ggplot2) >> >> png('test.png') >> p = ggplot(y_point7, aes(time, y_point7)) + geom_line() >> print(p) >> dev.off() >> savehistory() >> >> >> >> >> >> >> OR: >> >> In the last part I also tried: >> >> >> ID = rep(1:3, each = 5) >> >> >> point7 <- cbind(ID,beta0_7, beta1_7, tj, epsilon_7) >> point7 >> point7 <- as.data.frame(point7) >> >> colnames(point7) = c("ID","beta0_7","beta1_7","time", "epsilon_7") >> >> >> >> >> >> y_point7 <- point7$beta0_7 + point7$beta1_7*point7$time + point7 >> $epsilon_7 >> y_point7 >> >> crp7 <- y_point7 >> >> head(point7, n = 15) >> >> >> ggplot(aes(x = tj_gerar, y = crp7), data = point7) + >> geom_line(aes(group = ID), color = "gray") + >> geom_smooth(aes(group = 1), method = "lm", size = 3, color = "red", se >> = FALSE) + >> theme_bw() >> >> But none of these worked :( >> >> I was looking to have something like: >> >> >> Being the outcome PCR and the year the times (1, 2, 3, 4, 5). >> >> Can someone help me please? >> >> >> Thanks, >> >> Best Rosa >> >> >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > --Enviado do Gmail Mobile [[alternative HTML version deleted]]