I would like to join repeated measures for patients across two visits using a line. The program below uses symbols to represent each patient. Basically, I would like to join each pair of symbols. library(lattice) patient <- c(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9) var <- c(826,119,168,90,572,323,122,10,42,900,250,180,120,650,400,130,12,33) visit <- c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2) symbols <- c(1,2,3,4,5,6,7,8,9) xyplot(var ~ visit, pch = symbols[patient], key = list(points = list(pch symbols), space = list("right"),text list(c("1","2","3","4","5","6","7","8","9")))) # grid.lines(x = visit,y = var,draw = TRUE) ?? I am thinking I may need to use a function that joins coordinates (for example join (1,826) with (2,900)), but am hoping there may be a better way. Thanks for any help. Murray -- Murray Pung Statistician, Datapharm Australia Pty Ltd 0404 273 283 [[alternative HTML version deleted]]
Gabor Grothendieck
2006-Sep-07 01:55 UTC
[R] graphics - joining repeated measures with a line
Make each pair of points a separate group using group= and specify that both points and lines be used via type = "b". Also set the symbols in par.settings= so that they are accessed by both the main plot and the legend: xyplot(var ~ visit, group = symbols[patient], type = "b", auto.key = list(space = "right"), par.settings = list(superpose.symbol = list(pch = symbols))) On 9/6/06, Murray Pung <mcpung at gmail.com> wrote:> I would like to join repeated measures for patients across two visits using > a line. The program below uses symbols to represent each patient. Basically, > I would like to join each pair of symbols. > > > > library(lattice) > > patient <- c(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9) > var <- > c(826,119,168,90,572,323,122,10,42,900,250,180,120,650,400,130,12,33) > visit <- c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2) > symbols <- c(1,2,3,4,5,6,7,8,9) > > xyplot(var ~ visit, pch = symbols[patient], key = list(points = list(pch > symbols), space = list("right"),text > list(c("1","2","3","4","5","6","7","8","9")))) > > # grid.lines(x = visit,y = var,draw = TRUE) ?? > > I am thinking I may need to use a function that joins coordinates (for > example join (1,826) with (2,900)), but am hoping there may be a better way. > > > > Thanks for any help. > > Murray > > > -- > Murray Pung > Statistician, Datapharm Australia Pty Ltd > 0404 273 283 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > 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. >
Gabor Grothendieck
2006-Sep-07 02:01 UTC
[R] graphics - joining repeated measures with a line
Just one correction (although in this case it does not change the output) -- use group = patient rather than group = symbol[patient]: xyplot(var ~ visit, group = patient, type = "b", auto.key = list(space = "right"), par.settings = list(superpose.symbol = list(pch = symbols))) On 9/6/06, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:> Make each pair of points a separate group using group= and specify > that both points and lines be used via type = "b". Also set the > symbols in par.settings= so that they are accessed by both > the main plot and the legend: > > xyplot(var ~ visit, group = symbols[patient], type = "b", > auto.key = list(space = "right"), > par.settings = list(superpose.symbol = list(pch = symbols))) > > > On 9/6/06, Murray Pung <mcpung at gmail.com> wrote: > > I would like to join repeated measures for patients across two visits using > > a line. The program below uses symbols to represent each patient. Basically, > > I would like to join each pair of symbols. > > > > > > > > library(lattice) > > > > patient <- c(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9) > > var <- > > c(826,119,168,90,572,323,122,10,42,900,250,180,120,650,400,130,12,33) > > visit <- c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2) > > symbols <- c(1,2,3,4,5,6,7,8,9) > > > > xyplot(var ~ visit, pch = symbols[patient], key = list(points = list(pch > > symbols), space = list("right"),text > > list(c("1","2","3","4","5","6","7","8","9")))) > > > > # grid.lines(x = visit,y = var,draw = TRUE) ?? > > > > I am thinking I may need to use a function that joins coordinates (for > > example join (1,826) with (2,900)), but am hoping there may be a better way. > > > > > > > > Thanks for any help. > > > > Murray > > > > > > -- > > Murray Pung > > Statistician, Datapharm Australia Pty Ltd > > 0404 273 283 > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > 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. > > >
> I would like to join repeated measures for patients across two visits using > a line. The program below uses symbols to represent each patient. Basically, > I would like to join each pair of symbols.This is easy in ggplot: install.packages("ggplot") library(ggplot) qplot(visit, var, id=patient, type=c("line", "point"), colour=factor(patient)) Regards, Hadley