如何在 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 中向数据框添加行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注