ch0nny_log

[빅데이터분석] R _ 13. 데이터 정렬 본문

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

[빅데이터분석] R _ 13. 데이터 정렬

chonny 2024. 6. 27. 13:48
SQL vs R
order by dataframe에 내장된 order 함수 사용
※ 좀더 쉽게 하려면 doby 패키지를 설치하고 orderBy 함수를 이용해서 정렬함.

 

문제1. 이름, 월급을 출력하는데 월급이 높은 사원부터 출력하시오.
emp[order (emp$sal, decreasing = T),c('ename','sal')]​
문제2. emp20에서 이름과 나이를 출력하는데 나이가 높은 학생부터 출력하시오.
emp20[order (emp20$age,decreasing  = T),c('ename','age')]​

문제3. 내가 현재 접속한 R세션에서 활성화 되어 있는 변수 리스트를 출력하시오. 
ls()​

문제 4. emp20 변수를 현재 작업공간에서 지워버리고 싶다면?
rm(emp20)
ls()​
문제 5. r을 사용하다보면 기존에 남아있는 변수로 인해서 데이터 분석 결과가 잘못 나오는 경우가 있음. 모든 변수들을 지우는 명령어는?
rm(list=ls())
ls()​

 문제6. doBy 패키지를 설치
install.packages("doBy")
library(doBy)

setwd("c:\\data")
emp <- read.csv("emp.csv",header = T)
emp20 <- read.csv("emp20.csv",header = T, fileEncoding="euc-kr")

 

문제 7. 사원테이블에서 이름과 월급을 출력하는데 월급이 높은 사원부터 출력하시오.

설명      
 ~- sal 높은 것 부터 출력
~ sal 낮은 것 부터 출력   
만약 doBy 패키지를 이용하지 않고  order 내장 함수로 직업이 SALESMAN 인 사원들의 이름,월급을 출력하는데 월급이 높은 사원 부터 출력하는 결과를 뽑으려면 코드가 여러줄이 필요함
문제 8. 직업이 SALESMAN 인 사원들의 이름, 월급을 출력하는데 월급이 높은 사원부터 출력하시오.
library(doBy)
orderBy(~-sal,emp[  ,c('ename','sal')])​

문제 9. doby 패키지 없이 위 문제를 수행하시오(빅분기 시험 환경에는 패키지 설치가 안됨)
a<-emp[emp$job=='SALESMAN',c('ename','sal','job')]
a
str(a) #데이터 프레임입니다.
a[order(a$sal,decreasing = T),c('ename','sal')]​
문제 10. emp20테이블에서 나이가 20대인 학생들의 이름, 나이를 출력하는데 나이가 높은 학생부터 출력하시오. 
a<-emp20[(emp20$age>=20) &(emp20$age<=29) , c('ename','age')]
a
str(a)
a[order(a$age,decreasing = T),c('ename','age')]