• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

if 문 결과가 다름

20.01.28 17:38 작성 조회수 91

0

m <- matrix(1:15, ncol = 3, byrow = T)

m2 <- data.frame(m)

m2

m3 <- NULL

for (i in 1:10) {

  if(i %% 2 == 0){

    next;

  }

  m3 <- rbind(m3, m2)

  cat('\n', i)

}

for (i in 1:10) {

  if(i %% 2 == 0){

  

  }else{}

  m3 <- rbind(m3, m2)

  cat('\n', i)

}

순차적으로 따라서 실행했으나 강의에서는 

최종 dim(m3)가 25행으로 나오고

실행결과 75행이 됩니다.

답변 1

답변을 작성해보세요.

0

안녕하세요 jJ님

올려주신 코드를 전부 실행했을때에는 75행이 나오는게 맞습니다

m <- matrix(1:15, ncol = 3, byrow = T)

m2 <- data.frame(m)

m2

m3 <- NULL

for (i in 1:10) {

  if(i %% 2 == 0){

    next;

  }

  m3 <- rbind(m3, m2)

  cat('\n', i)

}

########## 

여기까지 실행했을때가 m3의 행의 수는 25행입니다.

5행인 m을 10번 rbind하는데 i가 짝수일때를 제외하고 했으니 5번 rbind하기 때문에 5행 * 5번 = 25행이 됩니다.

그리고 이상태에서 아래코드를 실행했을 경우

for (i in 1:10) {         ###### 현재  m3는 25행 이고 m2는 5행입니다.

  if(i %% 2 == 0){ 

  

  }else{

}

  m3 <- rbind(m3, m2) ##   

  cat('\n', i)

}

########

## 25행인 m3에 대하여 m2를 또 10번 rbind하기 때문에 

##최종적으로 m3는 25 + 5행 * 10번 = 75행이 맞습니다.