Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 순위출력
- 회귀분석 알고리즘
- 여러 데이터 검색
- 팀스파르타
- 그래프 생성 문법
- Intersect
- 회귀분석
- 데이터분석가
- 데이터분석
- 총과 카드만들기
- Dense_Rank
- 히스토그램 그리기
- 빅데이터
- difftime
- 단순회귀 분석
- max
- sql
- Sum
- count
- sqld
- loop 문
- 막대그래프
- merge
- 상관관계
- 정보획득량
- 빅데이터분석
- %in%
- if문 작성법
- 불순도제거
- 그래프시각화
Archives
- Today
- Total
ch0nny_log
[빅데이터분석] R _ 26. GROUP BY절 두개의 컬럼 사용 본문
문제1. 부서번호, 직업, 부서번호별 직업별 토탈월급을 출력하시오. (세로출력)
1) SQL
2) Rselect deptno, job, sum(sal) from emp group by deptno, job;
a<- aggregate(sal~deptno +job,emp,sum) library(doBy) orderBy(~deptno, a)
문제2. 부서번호, 직업, 부서번호별 직업별 토탈월급을 가로로 출력하시오
설명: list 함수로 숫자와 문제를 묶어줌tapply(emp$sal,list(emp$deptno, emp$job) ,sum)
※ R의 자료구조 | |
vector | |
matrix | |
data frame | |
list | 서로 다른 데이터 유형을 갖는 자료구조 |
array |
문제3. 위에서 출력되고 있는 결과에서 NA를 0으로 출력하시오.
(데이터 시각화를 하려면 반드시 NA가 0 이여야함)
X<- tapply(emp$sal,list(emp$deptno, emp$job) ,sum) is.na(X)
true 를 0 으로 만드세여
x <- tapply( emp$sal, list(emp$deptno,emp$job) , sum ) x[is.na(x)] <- 0 # True 자리에 0 이 들어갑니다. x
문제 4. 아래의 sql을 r로 구현하시오.
1) SQL
select to_char(hiredate,'RRRR'), sum(decode,10,sal,0)) as '10', sum(decode,10,sal,0)) as '20', sum(decode,10,sal,0)) as '30' from emp group by to_char(hiredate,'RRRR');
2) R
tapply(emp$sal, list(format(as.Date(emp$hiredate), '%Y'),emp$deptno),sum)
문제 5. 아래의 x변수 결과에서 컬러명과 로우명을 출력하시오.
x<-tapply(emp$sal, list(format(as.Date(emp$hiredate), '%Y'),emp$deptno),sum)
colnames(x)
rownames(x)
※ 그래프별 유형 | |
원형그래프 | 데이터간의 비율을 확인 |
막대그래프 | 데이터간의 크기별 차이를 확인 |
라인그래프 | 시계열 데이터의 시기별 추이 확인 |
문제 6. 위의 출력된 결과로 막대 그래프를 그리시오
x<-tapply(emp$sal, list(format(as.Date(emp$hiredate), '%Y'),emp$deptno),sum) x[is.na(x)] <- 0 # True 자리에 0 이 들어갑니다. barplot(x,col = rainbow(5),legend=rownames(x),beside =T,density = 50)
설명: density는 그래프 색의 투명도 / beside = T는 부서별 데이터를 년도별로 따로 쓰게끔함
문제 7. 타이나닉데이터 프레임을 생성하시오.
setwd("c:\\data") tat <- read.csv("tatanic2.CSV",header=T) tat
문제 8. 아래의 SQL을 R로 구현하시오.
1) SQL
select class, decode(sum(sex, 'male',1,0)) as 'male', decode(sum(sex, 'female',1,0)) as 'female' from tat group by class
2) R
x<- tapply(tat$caseno, list(tat$class,tat$sex),length) x
문제 9. 위의 결과를 막대그래프로 시각화 하시오.
x <- tapply( tat$caseno, list( tat$sex ,tat$class ), length ) x barplot(x, col = rainbow(3),legend=rownames(x),beside =T,density = 50)
문제 10. 직업, 직업별 토탈월급을 가로로 출력하시오. (가로로 출력해야 원형그래프 그리기 좋음)
x<- tapply(emp$sal, emp$job, sum) x
문제 11. 직업, 직업별 토탈월급을 가지고 원형(pie) 그래프로 그리시오.
pie(x,col=rainbow(5), density = 80)
문제 12. 위의 그래프를 3D로 그리시오. (3D 패키지 설치)
install.packages('plotrix') library(plotrix) pie3D(x, explode = 0.1, labels =rownames(x))
설명: exlode 가 벌어짐 정도 입니다.
문제 13. 위의 원형 그래프에 비율을 표시하기 위한 데이터를 만드시오.
x2 <- aggregate( sal ~ job, emp, sum ) x2 pct <- round( x2$sal / sum(emp$sal) * 100, 1 ) pct job_label <- paste( x2$job, ':' , pct , '%' ) job_label
문제 14. 일반 원형 그래프에 job_label 을 사용해서 시각하시오.
pie( x, labels=job_label, col=rainbow(14), density=80 )
문제 15.3D 원형 그래프에 job_label 을 사용해서 시각화 하시오
pie3D( x , explode=0.1, labels= job_label )
문제 16. 티이타닉 데이터의 데이터 성별 비율을 원형 그래프로 시각화 하기 위해서 성별, 성별별 인원수를 가로로 출력하시오.
tapply(tat$caseno,tat$sex,length)
문제 17. 원형 그래프의 비율을 라벨로 붙이기 위해서 성별별 인원수의 비율 데이터를 만드시오.
t2 <- aggregate(caseno ~ sex, tat, length) pct <- round( t2$caseno/sum(t2$caseno)*100,1) sex_label <- paste( t2$sex, ':', pct, '%') sex_label
문제 18. 위 문제를 원형 그래프로 시각화 하시오.
pie3D( x , explode=0.1, labels= sex_label )
pie( x, labels=sex_label, col=rainbow(14), density=80 )
'빅데이터 분석(with 아이티윌) > R' 카테고리의 다른 글
[빅데이터분석] R _ 28. Google Colab (1) | 2024.07.01 |
---|---|
[빅데이터분석] R _ 27. EQUI JOIN/OUTER JOIN/SELF JOIN (0) | 2024.06.28 |
[빅데이터분석] R _ 25. 그룹함수 MEAN (0) | 2024.06.28 |
[빅데이터분석] R _ 24. 그룹함수 SUM (0) | 2024.06.28 |
[빅데이터분석] R _ 23. 그룹함수 LENGTH(세로)/TABLE(가로)/원형그래프) (0) | 2024.06.28 |