R에서 중첩된 for 루프를 만드는 방법(예제 포함)


중첩된 for 루프를 사용하면 여러 벡터(또는 행렬의 여러 차원)의 요소를 반복하고 특정 작업을 수행할 수 있습니다.

R에서 for 루프 의 기본 구조는 다음과 같습니다.

 for (i in 1:4) {
  print (i)
}

[1] 1
[1] 2
[1] 3
[1] 4

중첩된 for 루프 의 기본 구조는 다음과 같습니다.

 for (i in 1:4) {
  for (j in 1:2) {
    print (i*j)
  }
}

[1] 1
[1] 2
[1] 2
[1] 4
[1] 3
[1] 6
[1] 4
[1] 8

이 튜토리얼에서는 R에서 중첩된 for 루프를 만드는 몇 가지 예를 보여줍니다.

예제 1: R의 중첩된 For 루프

다음 코드는 중첩된 for 루프를 사용하여 4×4 행렬의 값을 채우는 방법을 보여줍니다.

 #create matrix
empty_mat <- matrix(nrow= 4 , ncol= 4 )

#view empty matrix
empty_mat
     [,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA

#use nested for loop to fill in values of matrix
for (i in 1:4) {
  for (j in 1:4) {
    empty_mat[i, j] = (i*j)
  }
}

#view matrix
empty_mat

     [,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 2 4 6 8
[3,] 3 6 9 12
[4,] 4 8 12 16

예제 2: R의 중첩된 For 루프

다음 코드는 중첩된 for 루프를 사용하여 데이터 프레임의 각 값을 제곱하는 방법을 보여줍니다.

 #create empty data frame
df <- data.frame(var1=c(1, 7, 4),
                 var2=c(9, 13, 15))

#view empty data frame
df

  var1 var2
1 1 9
2 7 13
3 4 15

#use nested for loop to square each value in the data frame
for (i in 1:nrow(df)) {
  for (j in 1:ncol(df)) {
    df[i, j] = df[i, j]^2
  }
}

#view new data frame
df

  var1 var2
1 1 81
2 49 169
3 16 225

루핑에 대한 참고 사항

일반적으로 중첩된 for 루프는 작은 데이터 세트나 행렬에서는 잘 작동하지만 데이터가 클수록 속도가 상당히 느려지는 경향이 있습니다.

빅 데이터의 경우 애플리케이션 기능 계열이 훨씬 더 빠른 경향이 있으며 data.table 패키지에는 대규모 데이터 세트에서 효율적으로 작동하는 많은 내장 기능이 있습니다.

추가 리소스

R에서 열 이름을 반복하는 방법
R의 데이터 프레임에 행을 추가하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다