강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

j J님의 프로필 이미지
j J

작성한 질문수

R프로그래밍 기초 다지기

반복문(for)과 조건문(if)다루기

if 문 결과가 다름

작성

·

192

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행이 맞습니다.

j J님의 프로필 이미지
j J

작성한 질문수

질문하기