코딩초보 김씨

[R] 변수와 벡터 - 복습 문제 & 정답 본문

R

[R] 변수와 벡터 - 복습 문제 & 정답

초보김씨 2021. 6. 18. 09:44

[문제 1] 다음의 R 코드의 문제점을 지적하고 어떻게 해결해야 하는지 설명하시오.

  val.a <- 10
  sum.ab <- val.a + val.b

[답변 1]

val.b가 정해지지 않았으므로, val.b를 정의한다

 

 


 

[문제 2] 2, 95, 86, 47, 55, 68로 구성된 벡터 vc.1을 생성하고 vc.1의 내용을 출력하는 코드를 작성하고 이를 실제 R에서 실행시킨 결과를 제시하시오.

 

[답변 2]

# 벡터 정의
vc.1 <- c(2,95,86,47,55,68)

# 출력
vc.1

 


 

[문제 3] 100~200 사이의 짝수로 구성된 벡터 vc.2를 생성하고 vc.2의 내용을 출력하는 코드를 작성하고 이를 실제 R에서 실행시킨 결과를 제시하시 오.

 

[답변 3]

vc.2 <- seq(100,200,2)
vc.2

 


 

 

[문제 4] 벡터 d1, d2가 다음과 같을 때 각 문제를 수행하기 위한 코드를 작성 하고 답을 구하시오.

(1) d1, d2의 값을 출력하시오.

(2) d2의 길이(원소의 개수)를 보이시오.

(3) d1+d2, d2-d1, d1*d2, d2/d1의 각각의 결과를 출력하시오.

(4) d1, d2의 값들의 합을 각각 출력하시오.

(5) d1, d2에 있는 모든 값들의 합을 출력하시오.

(6) d2에서 가장 큰 값과 가장 작은 값을 출력하시오.

(7) d2와 d1의 값들의 평균값을 각각 구하고 두 평균의 차이를 출력하시오.

(8) d1의 값들을 큰 수에서 작은 수 순서로 정렬하여 출력하시오.

(9) d1과 d2에서 작은 수에서 큰 수 순서로 각각 10개씩을 추출하여 d3에 저장하시오(결과적으로 d3에는 20개의 수가 저장)

 

[답변 4]

d1 <- 1:50
d2 <- 51:100

(1) d1, d2 값 출력

d1
d2

 

(2) d2의 길이

length(d2)

 

(3) d1+d2, d2-d1, d1*d2, d2/d1

d1+d2
d2-d1
d1*d2
d2/d1

 

(4) d1, d2의 값들의 합

sum(d1)
sum(d2)

(5) d1, d2에 있는 모든 값들의 합 

sum(d1+d2)

선생님 답 : sum(d1)+sum(d2)

내가 틀린건 아니지만 이러한 방법도 있다!

 

(6) d2에서 가장 큰 값과 가장 작은 값

max(d2)
min(d2)

 

(7) 각각의 평균값과 두 평균의 차이 

mean(d2)
mean(d1)
mean(d2)-mean(d1)

틀린 부분 : abs로 절대값을 씌워주는 것이 좋음

 

(8) 큰 수에서 작은 수 순서로 정렬

sort(d1, decreasing = TRUE)

 

(9) d1과 d2에서 작은 수에서 큰 수 순서로 각각 10개씩 추출하여 d3에 저장

d1[0:10]
d2[0:10]
d3 <- d1[0:10]
d3 <- append(d3, d2[0:10], after=10)
d3

선생님 답 : 내 코드보다 더 효율적이다

# 방법 1
d3 <- c(d1[1:10], d2[1:10])

# 방법 2
d3 <- c(sort(d1)[1:10], sort(d2)[1:10]

 

Comments