[R] R 데이터 시험 예상 문제
📘 문제 1. 다음 중 append() 함수에 대한 설명으로 옳은 것은 무엇인가요?
A. 새로운 행렬을 생성한다
B. 리스트에 이름을 붙인다
C. 벡터에 새로운 값을 삽입한다
D. 행렬을 전치(transpose)한다
C. 벡터에 새로운 값을 삽입한다
x <- c(1, 2, 3)
append(x, 99, after = 2) # [1] 1 2 99 3
📘 문제 2. 아래 코드의 실행 결과로 올바른 것은 무엇인가요?
fruit <- c(5, 3, 2)
names(fruit) <- c("apple", "orange", "peach")
fruit["orange"]
A. "orange"
B. 3
C. "3"
D. 오류 발생
B. 3
출력 결과
orange
3
📘 문제 3. 다음 중 matrix(1:6, nrow = 2, byrow = TRUE)의 결과로 올바른 것은?
A.
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
B.
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
C.
[,1] [,2] [,3]
[1,] 1 4
[2,] 2 5
[3,] 3 6
D. 오류 발생
B.
[1,] 1 2 3
[2,] 4 5 6
- 1:6 → 숫자 1부터 6까지
- nrow = 2 → 2행짜리 행렬
- byrow = TRUE → 행 기준으로 값을 채움!
📘 문제 4. 다음 중 dplyr 패키지의 함수로 올바르지 않은 것은?
A. filter()
B. select()
C. mutate()
D. subset_by()
D. subset_by()
dplyr 패키지의 주요 함수
filter() | 조건에 따라 행을 필터링 |
select() | 원하는 열을 선택 |
mutate() | 새로운 열을 추가하거나 가공 |
arrange() | 행 정렬 |
group_by() + summarise() | 그룹별 집계 |
📘 문제 5. 다음 중 R의 기본 데이터 타입이 아닌 것은?
A. numeric
B. logical
C. complex
D. text
D
R의 기본 데이터 타입 (객체 유형)
numeric | 실수형 | 3.14, 10 |
integer | 정수형 (L 사용) | 5L, 100L |
logical | 논리형 | TRUE, FALSE |
character | 문자형 | "hello" |
complex | 복소수형 | 1 + 2i |
📘 문제 6. 다음 중 list()에 대한 설명으로 틀린 것은?
A. 서로 다른 타입의 데이터를 담을 수 있다
B. 리스트 안에는 벡터, 행렬, 또 다른 리스트도 담을 수 있다
C. 리스트는 [[ ]]를 사용하여 내부 요소에 접근한다
D. 리스트는 반드시 같은 타입의 데이터를 가져야 한다
D. 리스트는 반드시 같은 타입의 데이터를 가져야 한다
리스트는 서로 다른 타입을 자유롭게 담을 수 있는 유일한 R 객체입니다.
📘 문제 7. 다음 중 **파이프 연산자 %>%**의 설명으로 옳지 않은 것은?
A. 앞의 결과를 다음 함수의 첫 번째 인자로 넘긴다
B. 복잡한 중첩 함수를 가독성 좋게 풀어 쓸 수 있다
C. dplyr 패키지 없이도 기본적으로 사용 가능하다
D. 여러 줄에 걸쳐 함수들을 체인처럼 연결할 수 있다
C. dplyr 패키지 없이도 기본적으로 사용 가능하다
📘 문제 8. 다음 중 data.frame() 함수에 대한 설명으로 틀린 것은?
A. 서로 다른 타입의 벡터들을 묶어 하나의 표 형태로 만든다
B. 열마다 길이가 달라도 자동으로 채워진다
C. 열의 이름은 지정할 수 있다
D. 문자열 벡터는 기본적으로 factor로 변환된다 (기본 옵션 기준)
B. 열마다 길이가 달라도 자동으로 채워진다
✅ 해설:
- data.frame()에서는 모든 열(컬럼)의 길이가 같아야 해요.
- 열의 길이가 다르면 에러가 발생합니다.
- 자동으로 NA로 채워주는 기능은 없어요 (그건 tibble()이나 다른 방식으로 해야 함)
나머지는 다 맞는 설명이에요
- A ✅ 서로 다른 타입 가능 (숫자, 문자, 논리 등)
- C ✅ data.frame(x = 1:3, y = c("a", "b", "c")) 식으로 열 이름 지정 가능
- D ✅ 문자열 벡터는 기본적으로 factor로 변환됨 (stringsAsFactors = TRUE가 기본값이었음, R 4.0.0부터는 FALSE가 기본)
📘 문제 9. 다음 중 factor() 함수에 대한 설명으로 옳지 않은 것은?
A. 문자형 데이터를 범주형으로 변환할 수 있다
B. factor는 내부적으로 정수로 저장되며 levels로 라벨링된다
C. factor는 정렬이 불가능하다
D. levels 순서를 직접 지정할 수 있다
C
factor는 정렬이 가능하다.
👉 ordered = TRUE 옵션을 주거나, 순서대로 level 지정하면 정렬 가능해요.
📘 문제 10. (다음 중 순서가 있는 factor(ordered factor)를 생성하는 코드로 올바른 것은?
A.
factor(c("low", "medium", "high"))
B.
factor(c("low", "medium", "high"), ordered = TRUE)
factor(c("low", "medium", "high"), levels = c("high", "medium", "low"))
factor(c("low", "medium", "high"), levels = c("low", "medium", "high"), ordered = TRUE)
D
순서가 있는 factor(ordered factor) 를 만들려면
- levels를 지정
- ordered = TRUE 설정