2017-03-28 54 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)) 
}