一、for循環語句
for循環語句是一種有規律的循環結構,可以按照指定的次數執行某項任務。它的語法結構如下:
for(變量名 in 序列){
循環體語句
}
其中,變量名是指在循環中要使用的變量名,序列是指循環的次數或者是一個向量,循環體語句是要重複執行的一系列操作。
實際應用中,for循環語句經常與向量、矩陣等數據結構一起使用。下面是一個求向量元素和的例子:
x<-c(1,2,3,4,5)
sum<-0
for(i in x){
sum<-sum+i
}
print(sum)
這段代碼中,我們首先定義了一個向量x和一個變量sum。接着,使用for循環語句遍歷向量x的每一個元素,並將其加入到sum變量中。最終輸出sum的值,即向量x的元素和。
二、while循環語句
while循環語句是一種當條件為真時就重複執行某項任務的循環結構。它的語法結構如下:
while(條件){
循環體語句
}
其中,條件是一個邏輯表達式,循環體語句是要重複執行的一系列操作。
下面是一個求1到100的和的例子:
n<-1
sum<-0
while(n<=100){
sum<-sum+n
n<-n+1
}
print(sum)
這段代碼中,我們使用while循環語句計算1到100的和。首先,定義變量n為1和變量sum為0。循環體內部,我們將變量n累加到變量sum中,並且每次循環結束之後使n加1。當n大於100時,循環結束。最終輸出sum的值,即1到100的和。
三、repeat循環語句
repeat循環語句是一種無限循環結構,會一直執行循環體中的語句,直到遇到break語句終止循環。它的語法結構如下:
repeat{
循環體語句
if(條件){
break
}
}
其中,循環體語句是要重複執行的一系列操作,條件是一個邏輯表達式。在循環體中,我們使用if語句來檢查條件是否為真,如果為真則使用break語句將循環終止。
下面是一個使用repeat循環語句猜數字的例子:
answer<-28
while(TRUE){
guess<-as.integer(readline("請猜一個數字:"))
if(guess==answer){
print("恭喜你猜對了!")
break
}else if(guess<answer){
print("猜小了,請繼續。")
}else{
print("猜大了,請繼續。")
}
}
在這個例子中,我們首先定義了一個正確的答案answer為28。接着使用while循環語句,當條件為真時就一直重複猜數字的操作。在每一次循環中,我們首先使用readline函數從命令行中讀取一個整數,然後使用if語句來檢查這個數是否等於答案。如果相等,則輸出猜對了並且使用break語句終止循環。否則,我們還要進一步檢查這個數和答案之間的大小關係,輸出提示信息讓用戶繼續猜測。
四、apply函數家族
apply函數家族是一組廣泛應用於R語言中矩陣和數據框的函數。它們可以應用於多維數據結構,並且可以替代很多for循環操作。在apply函數家族中,最常用的有apply、lapply和sapply等函數。
下面是一個使用apply函數計算矩陣每一列的平均值的例子:
x<-matrix(c(1,2,3,4,5,6), nrow=2, ncol=3)
apply(x, 2, mean)
在這個例子中,我們首先定義了一個2×3的矩陣x,然後使用apply函數對矩陣x的每一列應用mean函數來計算平均值。其中,第二個參數2表示按列進行運算,返回的結果是一個長度為3的向量,包含了每一列的平均值。
另一個常用的函數是lapply,它可以應用於列表結構並返回一個列表。下面是一個使用lapply函數將列表中的元素都轉成大寫的例子:
x<-list("hello","world")
lapply(x, toupper)
在這個例子中,我們首先定義了一個包含兩個元素的列表x。然後,我們使用lapply函數對列表x中的每個元素應用toupper函數,將字符串都轉換成大寫字母。輸出結果為一個包含兩個元素的列表,分別對應於原始列表x中的每個元素。
除了apply和lapply函數外,sapply函數也是一種常用的apply函數家族的成員。它可以將結果轉化成向量形式,並且可以自動進行簡化。下面是一個使用sapply函數計算矩陣每一行的和的例子:
x<-matrix(c(1,2,3,4,5,6), nrow=2, ncol=3)
sapply(1:nrow(x), function(i){sum(x[i,])})
在這個例子中,我們使用sapply函數計算矩陣x中每一行的和。其中,第一個參數1:nrow(x)表示從1到矩陣x的行數,將這些數視為每一行的編號;第二個參數是一個匿名函數,用來計算矩陣x中某一行的和。在匿名函數中,我們使用sum函數對第i行元素求和,然後將結果返回。sapply函數將所有行的和保存在一個向量中,並返回給我們。
原創文章,作者:XOFYC,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372782.html