介绍

编程中减少代码重复的两个工具,一是循环,一是函数。

循环,用来处理对多个同类输入做相同事情(即迭代),如对不同列做相同操作、对不同数据集做相同操作。

R语言有三种方式实现循环:

基础循环

for循环

for循环中一般包括三个部分,输出容器、迭代器和循环体,下面写几个例子

  1. 求和1:100
s =0 # 输出容器

for (i in 1:100) {  # 迭代器
  s = s+i # 循环体
}
s
  1. 对mtcars每一列求均值

seq_along()、length()常被用于迭代器的构建

results = vector("numeric", length(mtcars)) # 输出容器

for (i in seq_along(mtcars)) { # 迭代器
  results[i] = mean(mtcars[[i]], na.rm = T) # 循环体
}
  1. 为循环添加简易进度条
n <- 1
N <- 4356
for (i in c(n:N)) {
  cat(paste0(round((i-n+1)/(N-n+1)*100), '% completed'))
 ………………………………………………………… #循环体
  if(i==N)cat('\\nDONE!\\n')
    else cat('\\r')
}

While循环

While循环是比for循环更一般的循环,因为for循环总可以改写为while循环,但while循环不一定能改写为for循环