read.csv
: csv파일을 데이터프레임으로 읽어들이는 함수
employees <- read.csv("c:/data/employees.csv",header = T)
조건에 해당하는 행만 추출
SQL
select *
from employees
where employee_id = 100;
R
employees[employees$EMPLOYEE_ID ==100,]
SQL
select last_name, salary
from employees
where employee_id = 100;
R
employees[employees$EMPLOYEE_ID==100,c('LAST_NAME','SALARY')]
employees[which(employees$EMPLOYEE_ID==100),c('LAST_NAME','SALARY')]
paste, paste0
: 변수에 값들을 하나로 묶는 함수
paste(text1,text2,text3)
paste(text1,text2,text3,sep=' ')
☞ sep=' ' : 값을 하나로 묶을 때 공백문자를 구분자로 입력해서 묶음
paste0(text1,text2,text3)
☞ 공백문자 없이 묶는다 = paste(text1,text2,text3,sep='')
#na.omit : NA가 있는 행을 삭제(행 자체가 NA)
[문제31] employees 변수에 있는 데이터 중에 급여가 3000 인 사원들의 last_name, salary를 출력하세요. 단 employees 변수에 컬럼정보를 확인하시고 수행하세요.
str(employees)
employees[employees$SALARY == 3000,c('LAST_NAME','SALARY')]
[문제32] 급여가 2000 이상인 사원들의 last_name, salary를 출력하세요.
employees[employees$SALARY >=2000,c('LAST_NAME','SALARY')]
[문제33] job이 ST_CLERK인 사원들의 이름과 월급과 직업을 출력하세요.
employees[employees$JOB_ID == 'ST_CLERK',c('LAST_NAME','SALARY','JOB_ID')]
[문제34] job이 ST_CLERK이 아닌 사원들의 이름과 월급과 직업을 출력하세요.
employees[employees$JOB_ID != 'ST_CLERK',c('LAST_NAME','SALARY','JOB_ID')]
[문제35] job이 AD_ASST, MK_MAN 인 사원들의 employee_id,last_name,job_id를 출력하세요.
employees[employees$JOB_ID %in% c('AD_ASST' | 'MK_MAN'),
c('EMPLOYEE_ID','LAST_NAME','JOB_ID')]
[문제36] 부서번호가 20번,30번 사원들 중에 급여가 10000이상인 사원의 last_name, salary, department_id를 출력하세요.
employees[employees$DEPARTMENT_ID %in% c(20,30) &
employees$SALARY >= 10000, c('EMPLOYEE_ID','LAST_NAME','JOB_ID']
[문제37] last_name과 job_id 값을 아래결과와 같이 출력되도록하세요.
King의 직업은 AD_PRES입니다.
....
paste0(employees$LAST_NAME,'의 직업은 ',employees$JOB_ID,'입니다.')
[문제38] Grant 사원의 정보만 출력해주세요.
Grant의 직업은 SH_CLERK입니다.
paste0(employees[employees$LAST_NAME == 'Grant','LAST_NAME'], '의 직업은 ',
employees[employees$LAST_NAME == 'Grant','JOB_ID'],'입니다.')
[문제39] commission_pct에 NA 인 사원들의 last_name, salary, commission_pct를 출력하세요.
employees[is.na(employees$COMMISSION_PCT) ,c('LAST_NAME','SALARY','COMMISSION_PCT')]
[문제40] department_id에 NA 인 사원들의 last_name, salary, department_id를 출력하세요.
employees[is.na(employees$DEPARTMENT_ID) ,c('LAST_NAME','SALARY','DEPARTMENT_ID')]
[문제41] commission_pct에 NA가 아닌 사원들의 last_name, salary, commission_pct를 출력하세요.
employees[!is.na(employees$COMMISSION_PCT) ,c('LAST_NAME','SALARY','COMMISSION_PCT')]
[문제42] 30번 부서 사원들이면서 급여는 3000이상인 사원들의 employee_id, salary, department_id
를 출력하세요.
employees[employees$DEPARTMENT_ID %in% 30 & employees$SALARY >= 3000 ,
c('EMPLOYEE_ID','SALARY','DEPARTMENT_ID')]
[문제43] 20번부서 사원이면서 급여는 10000를 초과한 사원 또는 급여가 2500 미만의 사원들의 employee_id, salary, department_id를 출력하세요.
employees[(employees$DEPARTMENT_ID %in% 20 & employees$SALARY > 10000) |
employees$SALARY < 2500, c('EMPLOYEE_ID','SALARY','DEPARTMENT_ID')]
'R' 카테고리의 다른 글
[R] 숫자함수, 날짜함수 (0) | 2022.01.13 |
---|---|
[R] 문자함수 (0) | 2022.01.12 |
[R] 자료형 - 7.data frame (0) | 2022.01.12 |
[R] 자료형 - 6.factor (0) | 2022.01.12 |
[R] 자료형 - 5.array (0) | 2022.01.12 |