开发者

R question. Plotting a response for distinct combinations of 2 factors. Hopefully with 'histogram' from Lattice Package

Suppose I have a response 开发者_StackOverflow社区variable (we'll call 'Y') and 2 factors (Factor A with levels A1 and A2, and Factor B with levels B1 and B2)

Can I use the 'histogram' function in the lattice package to plot the response for (A1 and B1) against the response for (A2 and B2)?

I know

histogram(~y|FactorA*FactorB)

will plot all 4 combinations. But what if I only want those two?

Just wanted to thank everyone at this site for all the help!


One way would be to make a new variable with the four combinations and use the subset command.

FactorAB <- factor(paste(FactorA, FactorB, sep=""))
histogram(~y|FactorAB, subset=FactorAB %in% c("A1B1", "A2B2"))


There should be a simpler way of doing this, but here is a hack that should get you pretty near what you want.

# sample data
dat <- data.frame(Y=rpois(100,20),A=factor(c(rep("A1",50),rep("A2",50))),B=factor(c(rep("B1",50),rep("B2",50))))
dat$B <- sample(dat$B)

# create blank (colourless) histogram
p <- histogram(~Y|A*B,dat,col=0,border=0)
# subset and print blank panels
p[1,]
# draw data from desired panels onto blank "template"
trellis.focus("panel",1,1)
do.call("panel.histogram",trellis.panelArgs(p,1)[1:5])
trellis.focus("panel",1,2)
do.call("panel.histogram",trellis.panelArgs(p,4)[1:5])
trellis.unfocus()

All that is left is to change the lower strip on the upper plot. Calling trellis.focus("strip",1,2) will put it in focus, and some suitable other call should be able to change it, but I can't find what that would be. It may overplot however.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜