# 1. emp.csv 파일을 읽고
emp <- read.csv('emp.csv')
# 1) COMM의 값이 NA인 행을 제외한 결과를 emp_new에 저장
[내 답안]
head(emp)
!is.na(emp$COMM)
emp_new <- emp[!is.na(emp$COMM),]
head(emp_new)
emp_new

[문제풀이]
emp_new <- emp[!is.na(emp$COMM),]
# 2) emp에서 COMM값이 NA인경우 100으로 수정
[내 답안]
head(emp)
emp[is.na(emp$COMM),]
emp$COMM[is.na(emp$COMM)] <- '100'
emp

[문제풀이]
emp[is.na(emp$COMM), 'COMM'] <- 100
# 3) 모든 직원의 사번, 이름, 입사일과 오늘날짜기준 근무일수 출력
[내 답안]
head(emp)
str(emp$HIREDATE)
as.Date(emp$HIREDATE, '%Y-%m-%d')
emp$HIRE_DAYS <- Sys.Date() - as.Date(emp$HIREDATE, '%Y-%m-%d')
emp[c('EMPNO','ENAME','HIREDATE','HIRE_DAYS')]

[문제풀이]
emp$HIREDATE <- as.Date(emp$HIREDATE)
emp$DAYS <- as.numeric(Sys.Date() - emp$HIREDATE)
emp[,c('EMPNO','ENAME','HIREDATE','DAYS')]
# 4) 30번 직원들의 급여를 10% 인상된 값으로 수정
[내 답안]
head(emp)
emp$SAL[emp$DEPTNO == 30] <- emp$SAL[emp$DEPTNO == 30] * 1.1
emp

[문제풀이]
emp[emp$DEPTNO == 30, 'SAL'] <- emp[emp$DEPTNO == 30, 'SAL'] * 1.1
# 2. student.csv 파일을 읽고
std <- read.csv('student.csv', fileEncoding = 'cp949')
# 1) 4학년이면서 키가 175 이상인 학생의 학번, 학년, 키 출력
[내 답안]
head(std)
std[(std$GRADE == 4) & (std$HEIGHT >= 175), c("STUDNO", 'GRADE', 'HEIGHT')]

[문제풀이]
std[(std$GRADE ==4) & (std$HEIGHT >=175), c("STUDNO", 'GRADE', 'HEIGHT')]
# 2) 생일이 월요일인 학생 수 출력
[내 답안]
head(std)
str(std$BIRTHDAY)
as.Date(std$BIRTHDAY, '%Y/%m/%d')
std$DAY <- strftime(std$BIRTHDAY, '%A')
std
nrow(std(std$DAY == '월요일'))
std
nrow(std[std$DAY == '월요일', ])

[문제풀이]
str(std)
std$BIRTHDAY <- as.Date(std$BIRTHDAY)
std$DAY <- strftime(std$BIRTHDAY, '%A')
sum(std$DAY == '월요일')
# 3) DEPTNO2가 NA인 대상들을 "제2전공없음" 으로 수정
[내 답안]
head(std)
std$DEPTNO2 <- as.character(std$DEPTNO2)
std$DEPTNO2[is.na(std$DEPTNO2)] <- '제2전공없음'
std

[문제풀이]
std[is.na(std$DEPTNO2), 'DEPTNO2'] <- "제2전공없음"
# 4) 1,4학년 학생들의 이름, 학년, 나이를 출력
# 단, 나이는 만나이로 계산(2000년생 -> 2026-2000+1)
[내 답안]
str(std$BIRTHDAY)
bir <- as.Date(std$BIRTHDAY, '%Y/%m/%d')
std$YEAR <- as.numeric(trunc((Sys.Date() - bir +365)/365))
std$YEAR
std[(std$GRADE == 1) | (std$GRADE == 4), c('NAME', 'GRADE', 'YEAR')]

[문제풀이]
toyear <- as.numeric(strftime(Sys.Date(), '%Y'))
byear <- as.numeric(strftime(std$BIRTHDAY, '%Y'))
std$AGE <- toyear - byear + 1
std[std$GRADE %in% c(1,4), c('NAME', 'GRADE', 'AGE')]
'아이티윌_데이터 분석 55기 > 문제풀이_통계 및 분석' 카테고리의 다른 글
| #6-2. 6일차 퀴즈에 대한 문제풀이 (0) | 2026.04.07 |
|---|---|
| #5-2. 5일차 퀴즈에 대한 문제풀이 (0) | 2026.04.03 |
| #4-2. 4일차 퀴즈에 대한 문제풀이 (0) | 2026.04.02 |
| #3-2. 3일차 퀴즈에 대한 문제풀이 (0) | 2026.04.01 |
| #2-2. 2일차 퀴즈에 대한 문제풀이 (0) | 2026.03.31 |