spag.plot <-
function(x,fun = mean, regfun=tsreg,type = c('l',
'p', 'b', 'o', 'c'), legend = FALSE, trace.label = deparse(substitute(trace.factor)),
fixed = FALSE, xlab = 'Time', ylab ='',
xtick = FALSE, xaxt = par('xaxt'), axes = TRUE, fit.lin=FALSE,...){
#
# Create a spaghetti plot for data stored in a matrix with
# n rows and p columns. The p columns
# contain measures taken at p times for each subject.
# This function converts x into a form that can be used by interaction.plot
#
# fit.line=TRUE means that a linear fit is plotted.
#
# regfun: The linear fit is based on the regression estimator indicated by
# regfun. The default is Theil--Sen estimator
#
#
# type: the type of plot (see plot.default): lines or points or both.
#
x=as.matrix(x)
n=nrow(x)
p=ncol(x)
np=n*p
m=matrix(NA,nrow=np,3)
pvec=c(1:p)
ic=1-p
iu=0
for(i in 1:n){
ic=ic+p
iu=iu+p
m[ic:iu,1]=i # create Subject id.
m[ic:iu,2]=pvec
m[ic:iu,3]=x[i,]
}
if(!fit.lin)interaction.plot(m[,2],m[,1],m[,3],xlab=xlab,ylab=ylab,legend=legend,
xtick=xtick,xaxt=xaxt,axes=axes)
if(fit.lin){
fit=by(m[,2:3],m[,1],regYval,regfun=regfun)
fit1 <- unlist(fit)
names(fit1) <- NULL
#plotting the linear fit by id
interaction.plot(m[,2],m[,1], fit1,
xlab=xlab, ylab=ylab, legend=legend)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.