循環(huán)語(yǔ)句是指在一定條件下,反復(fù)執(zhí)行相同的語(yǔ)句。這里的條件是循環(huán)條件,相同的語(yǔ)句是循環(huán)體。
在R語(yǔ)言中,循環(huán)語(yǔ)句主要有for循環(huán)、while循環(huán)和repeat循環(huán)三種。
本文首先介紹一下for循環(huán)的使用,在接下來(lái)的兩篇文章中探討while循環(huán)和repeat循環(huán)的使用。
for循環(huán)的與法格式為:
for(var in seq)
{
expr
}
其中,var為循環(huán)變量;seq為向量表達(dá)式,通常是一個(gè)序列。
其執(zhí)行過(guò)程是,每次從序列seq中取一個(gè)值放到var中,在循環(huán)體expr中進(jìn)行使用。

舉例1:輸出序列的值
for(n in 1:10)
print(n)
此例輸出結(jié)果:[1] 1 2 3 4 5 6 7 8 9 10
舉例2:求1~100之間所有數(shù)的和
sum <- 0
for(i in 1:100)
sum = sum + i
print(sum)
此例是求1~100所有數(shù)的和,輸出結(jié)果為:5050
舉例3:求二維數(shù)組中的最大值。
x<-c(11,34,12,87,89,93,54,31,88)
ar<-array(x,c(3,3))
max<-ar[1,1]
for(i in 1:3)
for(j in 1:3)
if(ar[i,j]>max)
max = ar[i,j]
print(max)
本例輸出結(jié)果為93
舉例4:求Fibonacci序列的前N項(xiàng)
N<-20 #求前20項(xiàng)
vec<-NA #定義一個(gè)空向量
vec[1] = vec[2] = 1 #前兩項(xiàng)賦值為1
for(n in 3:N) #從第3項(xiàng)開(kāi)始循環(huán)
vec[n] = vec[n-2] + vec[n-1] #每項(xiàng)是前兩項(xiàng)之和
print(vec) #輸出
本例執(zhí)行結(jié)果如下圖所示:

新聞熱點(diǎn)
疑難解答