https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=257831838&start=slayer
난생처음 R 코딩 & 데이터 분석
168개의 코드 예제를 기반으로 프로그래밍 기초부터 데이터 분석까지 다루며, R에서 사용하는 문법을 최대한 쉽게 설명하고 있다. 또한 4단계 반복 학습 시스템을 통해 프로그래밍 감각을 제대로
www.aladin.co.kr
1. 다음 중 1차원 자료를 저장하기 위한 자료구조를 모두 고르시오.
리스트 / 벡터 / 팩터
2. 다음 중 저장된 값의 종류가 다른 것은 무엇인가?
① a
3. 다음 명령문에서 벡터의 연산 결과가 잘못된 것을 찾고, 올바른 값을 구하시오.
④ 3 * v1 - v2 [올바른 값] 9 2 9 18 20
4. 벡터 a의 값 중 3의 배수이면서 100보다 작은 수의 개수를 구하는 명령문을 완성하시오.
a <- 25:150
condi <- a[a %% 3 == 0 & a < 100]
length(condi)
5. 벡터 a를 팩터 f로 만들고 f에 저장된 값의 종류를 구하는 명령문을 완성하시오.
a <- c('good', 'great', 'bad', 'okay', 'good', 'bad', 'good')
f <- factor(a)
unique(f) # <-> levels(f)
6. 운동화와 바지, 티셔츠를 온라인 쇼핑몰에서 구매하려고 한다. 각각의 가격은 76,000원, 52,000원, 36,000원 순이다. 프로모션 행사로 운동화는 5%, 바지는 10%, 티셔츠는 5% 할인한다고 한다. 최종 결제 금액을 구하는 명령문을 작성하고 결과를 출력하시오.
shoes <- 76000
pants <- 52000
shirt <- 36000
bill <- shoes*0.95 + pants*0.9 + shirt*0.95
print(bill)
7. 다음 명령문을 실행하니 [1] "black" "red" "white"와 같이 결과가 출력되었다. A에 들어갈 명령문을 작성하시오.
smartphone <- list(model = "iphone_se",
capacity = c(64, 128, 256),
dispaly = 'Retina',
color = c('black','red','white'))
smartphone$color # <-> smartphone[[4]]
8. 어떤 엘리베이터의 탑승 가능 총 무게는 600kg인데 마지막 사람이 타는 순간 운행 무게가 초과했다. 벡터 weight는 엘리베이터에 탑승한 사람들의 이름과 몸무게이다. 다음 조건을 만족하는 명령문을 작성하고 결과를 출력하시오.
weight <- c(56, 23, 89, 46, 76, 14, 97, 72, 68, 62, 35) # 638
names(weight) <- c('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k')
target.index <- min(weight[(sum(weight) - 600) <= weight])
weight.new <- weight[weight != target.index] # 592
# target.index <- which(weight == min(weight[(sum(weight) - 600) <= weight]))
# weight.new <- weight[-target.index]
9. 다음은 지나가는 행인 10명으로부터 선호하는 계절을 조사한 결과이다. 이 결과를 팩터 타입의 favorite에 저장하고 저장된 값의 종류를 나타내시오.
season <- c('여름','봄','여름','겨울','봄','겨울','여름','여름','봄','가을')
season.new <- factor(season)
levels(season.new) # unique(season.new)
10. 인천 공항에서 외국인 관광객 20명에게 설문을 진행하였다. 설문 응답자의 출신 국가는 다음 표와 같다. 이 결과를 팩터 country에 저장한 뒤 levels() 함수로 저장된 값의 종류를 출력한 결과가 다음과 같을 때, as.integer(country)의 출력 결과를 구하시오.
answer <- c('호주','독일','영국','일본','미국','중국','호주','영국','중국','일본',
'터키','미국','중국','중국','호주','터키','독일','일본','중국','독일')
country <- factor(answer)
levels(country) # [1] "독일" "미국" "영국" "일본" "중국" "터키" "호주"
as.integer(country) # 7 1 3 4 2 5 7 3 5 4 6 2 5 5 7 6 1 4 5 1
11. 다음은 SNS 게시글에 대한 정보이다. 이 정보를 묶어서 하나의 자료구조에 저장하시오. 자료구조의 이름은 post로 하고 각 값의 이름은 괄호 안의 영문명을 사용하시오.
post <- list(user_id = 'mr_steve',
post_id = 'p11010',
view = 37,
image = FALSE,
like = c('creeper','alex','skeleton','enderman'))
print(post)
12. 어떤 사람의 은행 계좌 정보를 다음과 같이 저장하고 있다. 최근 거래 내역을 추출하여 입금과 출금이 각각 몇 건인지 구하는 명령문을 작성하시오. 각 값에 대한 설명은 주석을 참고하시오.
account <- list(name = '하늘',
number = '123-468-120566',
balance = 4128750,
history = c(-50000, +20000, -32500, -79000, +42000))
deposit <- sum(account$history > 0) # length(account$history[account$history > 0])
withdraw <- sum(account$history < 0) # length(account$history[account$history < 0])
print(deposit)
print(withdraw)
'R' 카테고리의 다른 글
[Chapter 06: 연습문제] 난생처음 R 코딩 & 데이터 분석 (0) | 2024.04.17 |
---|---|
[Chapter 05: 연습문제] 난생처음 R 코딩 & 데이터 분석 (0) | 2024.04.15 |
[Chapter 01: 연습문제] 난생처음 R 코딩 & 데이터 분석 (0) | 2024.04.12 |
[Chapter 03: 연습문제] 난생처음 R 코딩 & 데이터 분석 (0) | 2024.04.08 |
[Chapter 02: 연습문제] 난생처음 R 코딩 & 데이터 분석 (0) | 2024.04.08 |