2017-03-28 117 views
0

我有關於循環的數據幀,使依賴於另一數據幀中的數據幀的每一個數值列的箱線圖的問題。例如,從mtcars:提供每列與箱體列的箱形圖。迭代箱線圖řmodel.frame.default

我試過類似如下:

for (i in names(mtcars)){ 
boxplot(i ~ gear, data = mtcars) 
} 

然而,這會導致以下錯誤:

"Error in model.frame.default(formula = i ~ gear, data = mtcars) : 
    variable lengths differ (found for 'gear')" 

我知道有在計算器上,顯示其他職位,在某些情況下, NA值禁止這種公式無法工作,但mtcars數據集是一個完整的數據集,所以NA值不能是一個問題。

我的問題:我怎麼能輕鬆地創建爲每個變量與從數據幀中的「固定的」變量的箱線圖?例如:

boxplot(mpg ~ gear, data = mtcars) 

boxplot(cyl ~ gear, data = mtcars) 

依此類推。

有關這個錯誤在另一種情況下其他職位可以發現here

遺憾的是我沒能解決我與這裏描述的答案的問題,因爲在大多數情況下,NA值是一個問題,還是有其他的技術爲使用用戶定義的函數時,從列表中提取元素。

+0

變化'箱線圖(I〜齒輪,數據= mtcars)'來'箱線圖(重新制定(我, 「齒輪」),數據= mtcars) '和你的循環將起作用。 – lmo

回答

2

i前將增加get for循環。 從你的問題,它不清楚輸出應該是什麼。如果我可以從你的持續loop,你可以這樣做:

for(i in names(mtcars)){ 
with(mtcars, boxplot(get(i) ~ gear)) 
}