반응형
[ 루프 (Loop) 반복문 ]
루프(Loop)는 프로그래밍에서 반복 작업을 수행하기 위해 사용되는 제어 구조이다. 주어진 조건이 참(True)인 동안 코드 블록을 반복적으로 실행한다. R에서는 주로 for 루프와 while 루프를 사용한다.
[ for 루프 문과 while 루프 문 비교 ]
for 루프는 반복 횟수가 명확하고 구조적인 작업에, while 루프는 특정 조건이 충족될 때까지 반복해야 하는 상황에 유용
for 루프 | while 루프 | |
구조 | for 루프는 주어진 조건 범위 내에서 반복 작업을 수행 일반적으로 반복 범위에 해당하는 변수를 사용하여 루프를 정의 초기화, 조건 검사, 증감 등의 구문을 한 줄에 표현할 수 있어서 코드가 간결 |
while 루프는 주어진 조건이 참(True)인 동안에만 반복 작업을 수행 루프를 시작하기 전에 종료 조건을 검사하므로 초기화, 조건 검사, 증감 등을 명시적으로 처리 필요 |
종료 조건 | 시작부터 종료까지의 반복 범위를 명시적으로 지정 | 루프 내에서 조건을 검사하여 반복을 중단하거나 계속할지 결정 |
사례 | 반복 횟수가 명확할 때 주로 사용 예) 특정 횟수만큼 반복하거나, 컬렉션(예: 배열, 리스트)의 각 요소에 접근하여 작업을 수행할 때 유용 |
반복 횟수가 명확하지 않거나, 특정 조건이 충족될 때까지 반복해야 할 때 주로 사용 예) 사용자 입력을 받거나, 특정 조건이 만족될 때까지 작업을 수행할 때 유용 |
[ for 루프 문 ]
[ 기본 예제 ]
일반적으로 반복 범위에 해당하는 변수를 정의하고, 그 변수가 범위 내에서 변화하면서 반복 작업 실행
for (변수 in 시퀀스 또는 벡터) { 반복 실행할 코드 } |
k = 0
for (i in 1:10) {
k <- k + i
print (k)
}
[1] 1
[1] 3
[1] 6
[1] 10
[1] 15
[1] 21
[1] 28
[1] 36
[1] 45
[1] 55
[ for 루프로 n씩 증가시키기 ]
for (변수 in seq (시작, 종료, by = n ) { 반복 실행할 코드 } |
by는 안 써도 됨
for (i in seq(1, 20, 2)) {
print (i)
}
[1] 1
[1] 3
[1] 5
[1] 7
[1] 9
[1] 11
[1] 13
[1] 15
[1] 17
[1] 19
for (i in seq(1, 20, by = 3)) {
print (i)
}
[1] 1
[1] 4
[1] 7
[1] 10
[1] 13
[1] 16
[1] 19
for (i in seq(10, 1, by = -1)) {
print (i)
}
[1] 10
[1] 9
[1] 8
[1] 7
[1] 6
[1] 5
[1] 4
[1] 3
[1] 2
[1] 1
[ while 루프 문 ]
[ 기본 예제 ]
while 루프는 주어진 조건이 참(True)인 동안에만 반복 작업을 수행하므로, 반복이 끝나는 조건을 지정해야 함
while (조건) { 반복 실행할 코드 } |
k <- 0
i <- 1
while (i < 11) {
k <- k + i
cat (i, "-", k, "\n")
i <- i + 1
}
1 - 1
2 - 3
3 - 6
4 - 10
5 - 15
6 - 21
7 - 28
8 - 36
9 - 45
10 - 55
print (i)
[1] 11
[ while 루프로 n씩 증가시키기 ]
x <- 1
while (x <= 20) {
print(x)
x <- x + 2
}
[1] 1
[1] 3
[1] 5
[1] 7
[1] 9
[1] 11
[1] 13
[1] 15
[1] 17
[1] 19
[ 중첩 for 루프 문 (for문 안에 for문) ]
# 2차원 배열 생성
array <- matrix(1:9, nrow = 3, byrow = TRUE)
# 중첩된 for 루프
for (i in 1:nrow(array)) {
for (j in 1:ncol(array)) {
cat (array[i, j], " ")
}
cat ("\n")
}
1 2 3
4 5 6
7 8 9
728x90
'데이터 분석 (with Rstudio)' 카테고리의 다른 글
[Rstudio] 세계지도 그리기와 색칠하기 (전체, 국가별 지도) (0) | 2024.04.15 |
---|---|
[Rstudio] 의회 다이어그램 with 국회의원 선거 의석 수 결과 (0) | 2024.04.12 |
[Rstudio] 조건문 if else case_when (4) | 2024.03.24 |
DT (Digital Transformation)와 DX (Digital eXperience) 정의와 핵심 고려사항 (0) | 2024.03.11 |
[Rstudio] 리플렛(leaflet) Marking Icon 설정 (1) | 2023.12.23 |