假設我有一個響應變量(我們稱之爲'Y')和2個因子(因子A具有等級A1和A2,因子B具有等級B1和B2)R問題。爲2個因素的不同組合繪製響應。希望用來自格子包的'直方圖'
我可以使用格子包中的「直方圖」函數來繪製(A1和B1)對(A2和B2)響應的響應?
我知道
直方圖(〜Y | FactorA * FactorB)
將繪製所有4種組合。但是如果我只想要那兩個呢?
只是想感謝在這個網站的所有人的幫助!
假設我有一個響應變量(我們稱之爲'Y')和2個因子(因子A具有等級A1和A2,因子B具有等級B1和B2)R問題。爲2個因素的不同組合繪製響應。希望用來自格子包的'直方圖'
我可以使用格子包中的「直方圖」函數來繪製(A1和B1)對(A2和B2)響應的響應?
我知道
直方圖(〜Y | FactorA * FactorB)
將繪製所有4種組合。但是如果我只想要那兩個呢?
只是想感謝在這個網站的所有人的幫助!
一種方法是用這四種組合創建一個新變量並使用subset
命令。
FactorAB <- factor(paste(FactorA, FactorB, sep=""))
histogram(~y|FactorAB, subset=FactorAB %in% c("A1B1", "A2B2"))
應該有一個更簡單的方法來做到這一點,但這裏是一個黑客應該讓你漂亮的靠近你想要的東西。
# 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)
將把它放在焦點,一些適當的其他呼叫應該能夠改變它,但我找不到那是什麼。但可能會重疊。
太棒了!謝謝。 '粘貼'和'子集'功能是超級有用的! – Michael 2011-02-20 06:13:38