2011-02-15 8 views
0

假設我有一個響應變量(我們稱之爲'Y')和2個因子(因子A具有等級A1和A2,因子B具有等級B1和B2)R問題。爲2個因素的不同組合繪製響應。希望用來自格子包的'直方圖'

我可以使用格子包中的「直方圖」函數來繪製(A1和B1)對(A2和B2)響應的響應?

我知道

直方圖(〜Y | FactorA * FactorB)

將繪製所有4種組合。但是如果我只想要那兩個呢?

只是想感謝在這個網站的所有人的幫助!

回答

2

一種方法是用這四種組合創建一個新變量並使用subset命令。

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

太棒了!謝謝。 '粘貼'和'子集'功能是超級有用的! – Michael 2011-02-20 06:13:38

0

應該有一個更簡單的方法來做到這一點,但這裏是一個黑客應該讓你漂亮的靠近你想要的東西。

# 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() 

剩下的就是改變上圖上的下方條。撥打trellis.focus("strip",1,2)將把它放在焦點,一些適當的其他呼叫應該能夠改變它,但我找不到那是什麼。但可能會重疊。

相關問題