본문 바로가기

R

[R] dplyr::summarise()

dplyr::summarise()

: 주어진 데이터 집계 

dplyr::summarise(employees,sum_sal=sum(SALARY),mean_sal=mean(SALARY))

주의! dplyr를 선언하지 않으면 우선순위가 plyr::이 먼저 수행된다.

group_by()

emploees%>%
group_by(DEPARTMENT_ID)%>%
summarise(sum_sal=sum(SALARY),avg_sal=mean(SALARY))

→ DEPARTMENT_ID가 존재하지 않는 사원의 SALARY도 출력. tibble : 데이터 프레임과 같은 형태 (각 컬럼의 자료형까지 출력됨)

(+) tibble :

x<-tibble(x=1:5,y=6:10)

data.frame(x) -> 데이터프레임으로 변환

options(tibble.print_max=Inf) : 행 전부 출력

 

여러 컬럼을 기준으로 group by 가능

emploees%>% 
group_by(DEPARTMENT_ID,JOB_ID)%>% 
summarise(sum_sal=sum(SALARY),avg_sal=mean(SALARY))

dplyr::summarise_at()

employees%>%
dplyr::summarise(sum_sal=sum(SALARY),mean_sal=mean(SALARY)), 
                 sum_comm=sum(commission_pct,na,rm=T),
                 mean_comm=mean(COMMISSION_PCT,na.rm=T)

⇒ 개선 

employees%>% 
dplyr::summarise_at(c('SALARY','COMMISSION_PCT'),c(sum,mean),na.rm=T)

dplyr::summarise_if()

: 조건에 맞는 열에 함수 적용

employees%>% 
dplyr::summarise_if(is.integer,c(sum,mean),na.rm=T)


[문제140] 부서별 급여의 총액을 구한 후 10000이하 정보만 출력해주세요.

① tapply

② aggregate

③ plyr::ddply

④ dplyr

[문제141]부서별, 요일별 입사 인원수를 출력하세요.

① tapply

② aggregate

③ plyr::ddply

④ dplyr

'R' 카테고리의 다른 글

[R] join  (0) 2022.01.20
[R] rank  (0) 2022.01.19
[R] dplyr  (0) 2022.01.19
[R] ddply  (0) 2022.01.18
[R] subset  (0) 2022.01.18
Recent Posts
Popular Posts
Recent Comments