使用lattice進行高級繪圖-- 調節變量
通常情況下,調節變量是因子。但是對於連續的變量應該如何操作呢?一種方法是使用R的cut()函數將連續的變量轉化為離散的變量。另一種方法是,lattice包提供的函數可以將連續的變量轉化為名為shingle的數據結構。具體來說,連續變量被分成一系列(可能)重疊的范圍。例如,函數:
myshingle <- equal.count(x, number=n, overlap=proportion)
將連續的變量x分成n個間隔,重疊比例是proportion,每個間隔里的觀測值個數相同,並將其返回為變量myshingle(屬於shingle類)。打印或畫出對象(例如輸入plot(mysingle))將展示shingle的間隔。
一旦變量轉化為shingle,就可以使用它來作為一個調節變量。例如,我們使用mtcars數據集來探索汽車每加侖汽油的行駛英里數mpg與以發動機排量disp為條件的汽車重量wt之間的關系。因為發動機排量disp是一個連續的變量,所以首先把它轉化為三水平的shingle變量:
displacement <- equal.count(mtcars$disp, number=3, overlap=0)
把這個變量應用到xyplot()函數中:
xyplot(mpg~wt|displacement, data=mtcars,
main = "Miles per Gallon vs. Weight by Engine Displacement",
xlab = "Weight", ylab = "Miles per Gallon",
layout=c(3, 1), aspect=1.5)
結果分析:xyplot是散點圖,mpg~wt|displacement意思是汽車每加侖汽油的行駛英里數與以發動機排量為條件的汽車重量之間的關系。layout=c(3, 1)使用了選項來調整面板的布局(一行三列)和aspect=1.5縱橫比(高/寬=1.5)來讓三組的對比變得更容易。圖中的表現形式指出了調節變量的連續性質,較深的顏色表示給定面板中調節變量的范圍。