# 对向量for循环

 1 2 3 4 5  # 计算x^2 x = c(1, 2, 3) for (i in x) { print(i^2) }
 1 2 3  ## [1] 1 ## [1] 4 ## [1] 9
 1 2 3 4 5 6 7 8  # 九九乘法表 for (j in 1:9) { for (i in 1:j) { m = i * j cat(i, "*", j, "=", m, " ") } cat("\n") }
 1 2 3 4 5 6 7 8 9  ## 1 * 1 = 1 ## 1 * 2 = 2 2 * 2 = 4 ## 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 ## 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 ## 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 ## 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 ## 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 ## 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 ## 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81

# 对非向量的for循环

 1 2 3 4 5 6 7 8  # 分别对矩阵u和v执行线性回归 u = matrix(c(1, 2, 3, 1, 2, 4), ncol = 2) v = matrix(c(8, 12, 20, 15, 10, 2), ncol = 2) for (m in c("u", "v")) { z = get(m) fit = lm(z[, 2] ~ z[, 1]) print(fit) }
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  ## ## Call: ## lm(formula = z[, 2] ~ z[, 1]) ## ## Coefficients: ## (Intercept) z[, 1] ## -0.6667 1.5000 ## ## ## Call: ## lm(formula = z[, 2] ~ z[, 1]) ## ## Coefficients: ## (Intercept) z[, 1] ## 23.286 -1.071

# for - next语句

 1 2 3 4 5 6 7 8 9  # 编程序计算1+2+3+4+6+7的值 x = 1:7 sum = 0 for (i in x) { if (i == 5) next sum = sum + i } print(sum)
 1  ## [1] 23

# while循环

 1 2 3 4 5  i = 1 while (i <= 10) { i = i + 4 } print(i)
 1  ## [1] 13

# while和break语句

 1 2 3 4 5 6 7  i = 1 while (TRUE) { i = i + 4 if (i > 10) break } print(i)
 1  ## [1] 13

# repeat和break语句

 1 2 3 4 5 6 7  i = 1 repeat { i = i + 4 if (i > 10) break } print(i)
 1  ## [1] 13

# if - else语句

 1 2 3 4 5 6 7 8  # 如果x = 2，则y = x，否则y = x + 1 x = 3 if (x == 2) { y = x } else { y = x + 1 } print(y)
 1  ## [1] 4

# switch语句

  1 2 3 4 5 6 7 8 9 10 11  feelings = c("sad", "afraid") for (i in feelings) { print( switch(i, happy = "I am glad you are happy", afraid = "There is nothing to fear", sad = "Cheer up", angry = "Calm down now" ) ) }
 1 2  ## [1] "Cheer up" ## [1] "There is nothing to fear"

# 编写函数

  1 2 3 4 5 6 7 8 9 10 11 12 13  # 编写函数(统计奇数个数) oddcount = function(x) { k = 0 for (i in x) { if (i%%2 == 1) k = k + 1 } return(k) } # 测试函数 x = 1:10 oddcount(x)
 1  ## [1] 5