[R] spaghetti plot - urgent
Rosa Oliveira
rosita21 at gmail.com
Wed Jul 19 16:51:04 CEST 2017
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
More information about the R-help
mailing list