R语言 for循环

当需要遍历一列元素或一组数字时,for循环非常有用。循环可用于遍历列表、数据帧、向量、矩阵或任何其他对象。括号方括号是必需的。


For (i in vector) {
   # exp
}

在这里,R将遍历向量中的所有变量,并执行exp中写入的计算:

for循环结构
for循环结构

示例1

我们遍历向量的所有元素并打印当前值:


# 创建一个水果的向量
fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')
# 创建for语句
for ( i in fruit){ 
 print(i)
}

结果:


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

示例2

使用 x( 1到4 )的多项式创建一个非线性函数,并将其存储在一个列表中:


# 创建一个空列表
list <- c()
# 创建一个for语句来填充列表
for (i in seq(1, 4, by=1)) {
  list[[i]] <- i*i
}
print(list)
# 结果
[1]   1  4 9 16	

for循环对于机器学习任务非常有价值。当我们训练一个模型后,我们需要对模型进行规则化,以避免过度拟合。正则化是一项非常繁琐的任务,因为我们需要找到使损失函数最小化的值。为了帮助我们检测这些值,我们可以使用for循环来遍历一系列值并定义最佳候选值。


for循环遍历列表

对列表进行循环就像对向量进行循环一样简单和方便。让我们看一个例子

创建一个包含三个向量的列表 :


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循环遍历矩阵

一个矩阵有二维的行和列。要遍历一个矩阵,我们必须定义两个for循环,即一个for行,另一个for列


# 创建一个矩阵
mat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)
# 用r和c创建循环来遍历矩阵
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" 





公众号

关注公众号,获取一手资讯

“ R语言 for循环 ” comments 0

评论/回复

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