[R] Produce multiple line graphs

David Winsemius dwinsemius at comcast.net
Mon Sep 26 04:41:08 CEST 2016


> On Sep 25, 2016, at 6:43 PM, John Sorkin <JSorkin at grecc.umaryland.edu> wrote:
> 
> I have a data frame that contains data for multiple (seven) subjects. Each subject is represented by a new value of PID.
> I would like to plot the data for all seven subjects. For each subject I want to plot a line showing CT as a function of Nit, with the dots for each subject joined. I have tried to accomplish this using the by function. I get an error message, 
> Error in match.fun(panel) : 
>  'xx[, "CT"]' is not a function, character or symbol
> I have no idea what is causing the error, nor how to correct the error, nor how to get the dots for each point be connected by a line.
> 
> 
> Any help would be appreciated!
> 
> 
> PID <- c( 1 ,  1   ,  1   , 1   , 2, 2, 2, 2, 3   ,   3  ,  3   ,  3   ,  4   ,  4,  4, 4    , 5, 5, 5, 5, 6, 6, 6, 6, 7   ,  7   ,    7  , 7)
> Nit <- c(NA , -9.23,-11.61,-7.88,NA,NA,NA,NA,-5.59,  0.73,-10.55, -9.13,  3.67, NA, NA,-13.26,NA,NA,NA,NA,NA,NA,NA,NA,-9.36,  5.08,  -5.73, 2.02)
> CT  <- c(544,459   ,432   ,NA   ,NA,NA,NA,NA,1398 ,1287  ,1049  , NA   ,543   ,474,507,NA    ,NA,NA,NA,NA,NA,NA,NA,NA,992  ,992   ,1078   ,NA)
> xx  <- data.frame(PID=PID,Nit=Nit,CT=CT)
> xx
> by(xx,as.factor(xx[,"PID"]),plot,xx[,"Nit"],xx[,"CT"])

Wouldn't this just be:

library(lattice)
xyplot( CT ~ Nit, group= PID, data=xx, type="b")


-- 
David (MD, MPH)


> John David Sorkin M.D., Ph.D.

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list