2016-11-18 5 views
1

내가 여기에 새로운, 그래서 이러한 기본적인 질문을 용서하지만, 난 그냥 R을 시작하고 내가 나를 난처한 상황에 빠진 남아있는 질문 물어 봤는데 : mtcars, 나는 ', R에 사전 설치된 데이터 세트를 사용다른 변수의 모든 값에 대한 변수의 평균을 찾는 방법은 무엇입니까?

을 "gear"변수의 각 값에 대한 "mpg"변수의 평균을 찾았습니다. 이게 무슨 뜻인지 정확히 모르겠습니다. 하위 집합을 사용해야한다고 가정합니까?

그것은 너무 기본이다 그래서 내가 여기에 무엇을보고 있지 않다 조금 실망이야 ....

+1

다음 튜토리얼을 시도해보십시오. http://www.r-tutor.com/r-introduction/data-frame'mtcars'는 행과 열을 가진 객체입니다. 전체 데이터 세트를 보지 못했지만 'mpg'는 해당 데이터 세트의 열이고 'gear'는 데이터 세트의 열이기도합니다. – scrappedcola

답변

4

aggregate 사용 :

aggregate(mtcars$mpg,list(mtcars$gear),mean) 
## Group.1  x 
##1  3 16.10667 
##2  4 24.53333 
##3  5 21.38000 

설명서에 따라 ?aggregate :

0을 참조하십시오.

데이터를 부분 집합으로 분할하고 각각에 대한 요약 통계를 계산 한 다음 편리한 형식으로 결과를 반환합니다. 여기

, 즉, 첫 번째 인자 mtcars$mpg는 평균화 할 변수이고, 두 번째 인자는 그 값이 각각의 기능, mean을 적용 x들의 서브셋을 결정하는 그룹핑 변수 목록 세 번째 주장.

+0

좋은 답변이지만 수식 인터페이스'aggregate (mpg ~ gear, mtcars, mean) '로는 조금 더 깨끗합니다. – Barker

+0

여기 코딩 수업에 대해 좌절스러운 점 중 하나는, 그들은 우리에게 매우 기본을 가르쳐주고 우리가 아직 끝나지 않은 코드에 관한 질문을하는 것입니다. 집계 함수를 소개해 주셔서 감사합니다! 큰 도움! – ROCKaholic

2

사용 dplyr :

library(dplyr) 
mtcars %>% 
    group_by(gear) %>% 
    summarise(avg_mpg = mean(mpg)) 
+0

대단히 고마워요. – ROCKaholic

1

때로는 데이터 시각화하여 시작하는 것이 유용 :

plot(x = mtcars$gear, y = mtcars$mpg) 

enter image description here

우리는 gear 3 개 값 걸리는 것을 알 수있다 (3, 4, 5), 우리는 평균을 찾고자 mpg 기어의 각 값에 대한 값입니다. 당신이 제안으로

우리는 부분 집합을 통해이 작업을 수행 할 수 있습니다

mean(subset(mtcars, gear == 3)$mpg) 
# [1] 16.10667 

그러나 base R 기능을 사용하여 할 수있는 방법은 tapply입니다 :

tapply(mtcars$mpg, mtcars$gear, mean) 
#  3  4  5 
# 16.10667 24.53333 21.38000 
1

또는 사용 data.table

library(data.table) 
as.data.table(mtcars)[, .(avg_mpg = mean(mpg)), by = gear]