목록과 행렬의 예가 포함된 R의 For 루프

for 루프는 요소 목록이나 숫자 범위를 반복해야 할 때 매우 유용합니다. 루프는 목록, 데이터 프레임, 벡터, 행렬 또는 다른 객체를 반복하는 데 사용할 수 있습니다. 중괄호와 대괄호는 필수입니다.

이 튜토리얼에서는 다음과 같은 내용을 학습합니다.

For 루프 구문 및 예

For (i in vector) {
    Exp	
}

여기

R 벡터의 모든 변수를 반복하고 exp 내부에 작성된 계산을 수행합니다.

R의 For 루프
R의 For 루프

몇 가지 예를 살펴보겠습니다.

R의 For 루프 예 1: 벡터의 모든 요소를 ​​반복하고 현재 값을 인쇄합니다.

# Create fruit vector
fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')
# Create the for statement
for ( i in fruit){ 
 print(i)
}

출력:

## [1] "Apple"
## [1] "Orange"
## [1] "Passion fruit"
## [1] "Banana"

R의 For 루프 예 2: 1과 4 사이의 x 다항식을 사용하여 비선형 함수를 생성하고 이를 목록에 저장합니다.

# Create an empty list
list <- c()
# Create a for statement to populate the list
for (i in seq(1, 4, by=1)) {
  list[[i]] <- i*i
}
print(list)

출력:

## [1]   1  4 9 16

for 루프는 기계 학습 작업에 매우 유용합니다. 모델을 훈련한 후에는 과적합을 방지하기 위해 모델을 정규화해야 합니다. 정규화는 손실 함수를 최소화하는 값을 찾아야 하기 때문에 매우 지루한 작업입니다. 이러한 값을 감지하는 데 도움이 되도록 for 루프를 사용하여 값 범위를 반복하고 가장 적합한 후보를 정의할 수 있습니다.

목록에 대한 For 루프

목록을 반복하는 것은 벡터를 반복하는 것만큼 쉽고 편리합니다. 예를 보자

# Create a list with three vectors
fruit <- list(Basket = c('Apple', 'Orange', 'Passion fruit', 'Banana'), 
Money = c(10, 12, 15), purchase = FALSE)
for (p  in fruit) 
{ 
	print(p)
}

출력:

## [1] "Apple" "Orange" "Passion fruit" "Banana"       
## [1] 10 12 15
## [1] FALSE

행렬에 대한 For 루프

행렬에는 2차원의 행과 열이 있습니다. 행렬을 반복하려면 두 개의 for 루프, 즉 행에 대해 하나, 열에 대해 하나를 정의해야 합니다.

# Create a matrix
mat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)
# Create the loop with r and c to iterate over the matrix
for (r in 1:nrow(mat))   
    for (c in 1:ncol(mat))  
         print(paste("Row", r, "and column",c, "have values of", mat[r,c]))  

출력:

## [1] "Row 1 and column 1 have values of 10"
## [1] "Row 1 and column 2 have values of 16"
## [1] "Row 2 and column 1 have values of 11"
## [1] "Row 2 and column 2 have values of 17"
## [1] "Row 3 and column 1 have values of 12"
## [1] "Row 3 and column 2 have values of 18"
## [1] "Row 4 and column 1 have values of 13"
## [1] "Row 4 and column 2 have values of 19"
## [1] "Row 5 and column 1 have values of 14"
## [1] "Row 5 and column 2 have values of 20"
## [1] "Row 6 and column 1 have values of 15"
## [1] "Row 6 and column 2 have values of 10"