2017-03-28 2 views
0

데이터 프레임을 반복하고 다른 데이터 프레임에 종속적 인 데이터 프레임의 각 숫자 열의 상자 그림을 만드는 것에 관한 질문이 있습니다. 예를 들어, mtcars에서 : 기어 열에 대한 각 열의 상자 그림을 제공합니다.boxplot 반복 R model.frame.default

나는 다음과 같은 시도 :

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

을이 그러나, 다음과 같은 오류가 발생합니다 : 내가 보여 StackOverflow의 다른 게시물이 있다는 것을 알고

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

그 어떤 경우에는 NA 값은 이러한 종류의 공식이 작동하지 못하게하지만, mtcars 데이터 세트는 완전한 데이터 세트이므로 NA 값은 문제가 될 수 없습니다.

내 질문 : 어떻게 데이터 프레임에서 '고정 된'변수 대 각 변수에 대한 boxplot을 쉽게 만들 수 있습니까? 예 :

boxplot(mpg ~ gear, data = mtcars) 

boxplot(cyl ~ gear, data = mtcars) 

기타 등등.

다른 문맥에서이 오류와 관련된 다른 게시물은 here입니다.

유감스럽게도 NA 값이 문제가되거나 사용자 정의 함수를 사용할 때 목록에서 요소를 추출하는 것과 같은 기술적 인 문제가 있기 때문에 여기서 설명한 대답으로 문제를 해결할 수 없었습니다.

+0

변경 '상자 그림 (나는 ~ 기어, 데이터 =의 mtcars) 상자 그림'으로는'(재구성 (I, "장비"), 데이터 =의 mtcars) '와 for 루프가 작동합니다. – lmo

답변

2

for 루프에 get 앞에 i을 추가하기 만하면됩니다. 당신의 질문에서 결과가 무엇인지 분명하지 않습니다. 내가 loop에 대한 귀하의에서 계속 될 경우,이 작업을 수행 할 수 있습니다

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