ch0nny_log

[빅데이터분석] R _ 25. 그룹함수 MEAN 본문

빅데이터 분석(with 아이티윌)/R

[빅데이터분석] R _ 25. 그룹함수 MEAN

chonny 2024. 6. 28. 13:45
문제1. 직업, 직업별 평균월급을 출력하시오 ! (세로출력) 
aggregate( sal ~ job, emp, mean )​
문제2. 위의 결과에서 소수점이하는 안나오게 반올림하시오.
X<- aggregate( sal ~ job, emp, mean )
X$sal <-round(X$sal)
X​

문제 3. 직업, 직업별 평균월급을 출력하는데 가로로 출력하시오.
total_sal<- tapply(emp$sal,emp$job,mean)
total_sal​
*
소숫점을 없애시오
total_sal<- round(tapply(emp$sal,emp$job,mean))
total_sal​
문제 4. 아래 SQL을 R롷 구현하시오.
1) SQL
select to_char(hiredate,'RRRR'), round(avg(sal))
	from emp
    group by to_char(hiredate,'RRRR')
    order by 1 asc;​
2) R
emp$hire_year <- format( as.Date(emp$hiredate), '%Y')
x <- aggregate( sal ~ hire_year, emp,  mean )
x$sal <- round(x$sal)
names(x) <- c("입사년도", "평균월급")
library(doBy)
orderBy( ~ 입사년도, x )​
문제 5. 위의 코드를 수정해서 아래의 sql을 r로 작성하시오.
1) SQL
select to_char(hiredate,'RRRR')
	from emp
    group by to_char(hiredate,'RRRR')
    order by 1 asc;​
2) R
emp$hire_year <- format( as.Date(emp$hiredate), '%Y')
x <- aggregate(  empno ~ hire_year, emp,  length )
names(x) <- c("입사년도", "인원수")
library(doBy)
orderBy( ~ 입사년도, x )​
문제 6. 위의 결과를 라인 그래프로 시각화 하시오.
x_year <- orderBy(~입사년도,x)
plot(as.numeric(x_year$입사년도),x_year$인원수,type = 'o',col='blue',
     xlab = '입사년도', ylab = '인원수',main = '입사년도별 인원수')​

 

설명: plot(x축데이터, y축데이터)
          type ='o' 는 라인과 점을 표시하도록 설정
★ 문제 7. 위의 라인 그래프를 빠르게 그릴 수 있도록 위의 코드를 하나로 통합하시오.
setwd('c:\\data')
emp <- read.csv('emp.csv', header = T)


emp$hire_year <- format( as.Date(emp$hiredate), '%Y')
x <- aggregate(  empno ~ hire_year, emp,  length )
names(x) <- c("입사년도", "인원수")
library(doBy)
orderBy( ~ 입사년도, x )

x_year <- orderBy(~입사년도,x)
plot(as.numeric(x_year$입사년도),x_year$인원수,type = 'o',col='blue',
     xlab = '입사년도', ylab = '인원수',main = '입사년도별 인원수')​