Aninhado para Loops em R

Jinku Hu 20 novembro 2021
  1. Loop for em linguagem R
  2. Use o loop aninhado for para iterar os elementos do array em R
Aninhado para Loops em R

Este artigo irá apresentar os loops for aninhados em R.

Loop for em linguagem R

O loop for está disponível na linguagem R com heurísticas semelhantes às da maioria das linguagens de programação. Ele repete o bloco de código fornecido várias vezes. A sintaxe do loop for é a seguinte.

for (item in set) {}

item é um objeto que armazena o elemento iterado do set. O loop for não retorna saída, então precisamos chamar a função print para mostrar o valor word em cada iteração.

vec1 <- c("ace", "spades", "king", "spades", "queen", "spades", "jack",
           "spades", "ten", "spades")

for (word in vec1) {
  print(word)
}

Resultado:

[1] "ace"
[1] "spades"
[1] "king"
[1] "spades"
[1] "queen"
[1] "spades"
[1] "jack"
[1] "spades"
[1] "ten"
[1] "spades"

Também podemos implementar o loop for, onde o índice é exposto como uma variável. Nesse caso, a função length é utilizada para calcular o tamanho do vetor vec1 e iterar do primeiro elemento até o final. Observe que a notação 1: é importante e especifica o início do intervalo. O código de exemplo a seguir cria um vetor de string copiado para outro vetor do mesmo tamanho usando o loop for.

vec1 <- c("ace", "spades", "king", "spades", "queen", "spades", "jack",
           "spades", "ten", "spades")

vec2 <- vector(length = length(vec1))

for (i in 1:length(vec1)) {
  vec2[i] <- vec1[i]
}
vec2

Resultado:

[1] "ace"    "spades" "king"   "spades" "queen"  "spades" "jack"   "spades" "ten"   
[10] "spades"

Use o loop aninhado for para iterar os elementos do array em R

Os loops aninhados podem ser implementados usando a estrutura de loop for. Isso pode ser utilizado para iterar sobre os elementos do array e inicializá-los com valores aleatórios. Observe que a notação geral é a mesma do exemplo anterior, exceto que o final do intervalo é calculado com as funções nrow e ncol. nrow e ncol retornam o número de linhas ou colunas do array, respectivamente.

mat1 <- matrix(0, nrow = 5, ncol = 5)
for (i in 1:nrow(mat1)) {
  for (j in 1:ncol(mat1)) {
    mat1[i, j] <- sample(1:100, 1, replace=TRUE)
  }
}
mat1

Resultado:

[,1] [,2] [,3] [,4] [,5]
[1,]   13   14   13   67   98
[2,]   28   50   23   55    9
[3,]    3   65   99   17   93
[4,]   18    6   20   50   46
[5,]   51   76   33   26    3

Embora, a estrutura de loop aninhado funcione bem no código de exemplo anterior. A inicialização do array é melhor feita usando a função sample encadeada diretamente como o primeiro argumento da função matrix, conforme mostrado no trecho a seguir.

mat2 <- matrix(sample(1:100, 25, replace = TRUE), ncol = 5)
mat2

Resultado:

[,1] [,2] [,3] [,4] [,5]
[1,]   85   19   26   53   88
[2,]   44   50   66   96   56
[3,]   42   46   37   19   66
[4,]   43   23   13   32   67
[5,]   56   51   21    2   56
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - R Loop