[R] xyplot: subscripts, groups and subset

Jim Price price_ja at hotmail.com
Fri May 16 21:56:32 CEST 2008


I have stumbled across something in the Lattice package that is vexing me.
Consider the code below:
__________________________________________________________

library(lattice)


myData <- expand.grid(sub = factor(1:16), time = 1:10)

myData$observed <- rnorm(nrow(myData))
myData$fitted <- with(myData, ave(observed, sub, FUN = mean))
myData$event.time <- with(myData, ave(observed, sub, FUN = function(.x) 10 *
runif(1)))

myData <- myData[order(myData$sub, myData$time),]



# This version works...
xyplot(
	fitted + observed ~ time | sub,
	data = myData,
	subscripts = TRUE,
	panel = function(..., groups = groups, subscripts = subscripts)
	{
		panel.xyplot(..., groups = groups, subscripts = subscripts)

		event.time <- unique(myData$event.time[subscripts])
		panel.abline(v = event.time, lty = 2, col = 'green')
	},
	type = c('l','p'),
	distribute.type = TRUE,
	as.table = TRUE
)



# ...but when you add the subset parameter it produces multiple index lines
per subject
xyplot(
	fitted + observed ~ time | sub,
	data = myData,
	subset = sub %in% sample(unique(sub), 9),
	subscripts = TRUE,
	panel = function(..., groups = groups, subscripts = subscripts)
	{
		panel.xyplot(..., groups = groups, subscripts = subscripts)

		event.time <- unique(myData$event.time[subscripts])
#		print(event.time)
		panel.abline(v = event.time, lty = 2, col = 'green')
	},
	type = c('l','p'),
	distribute.type = TRUE,
	as.table = TRUE
)

___________________________________________________________________


The (commented out) print statement I think indicates that there is a data
reordering going on for the second example, that is causing the multiple
index lines issue. Is there a neat solution to get the correct index lines
per subject, or do I need a workaround? Or am I missing something
fundamental in the code above that is causing issues?


> sessionInfo()
R version 2.7.0 (2008-04-22) 
i386-pc-mingw32 

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] lattice_0.17-6

loaded via a namespace (and not attached):
[1] grid_2.7.0



Thanks,
Jim Price
Cardiome Pharmaceutical Corporation.
-- 
View this message in context: http://www.nabble.com/xyplot%3A-subscripts%2C-groups-and-subset-tp17282996p17282996.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list