- 文本數據挖掘:基于R語言
- 黃天元編著
- 995字
- 2021-07-08 12:07:02
2.4 R的基礎編程知識
R語言與C語言等其他編程語言相似,自身有一套編程體系。盡管這個體系非常龐雜,但是對于入門者而言,只需要掌握其中一些核心的內容就可以完成大部分簡單的數據操作和計算。本節將會針對R語言編程的部分核心內容進行簡要介紹,從而讓初學者快速掌握一些基本概念。
2.4.1 賦值
賦值就是把計算好的結果賦予一個變量的過程,在前面的介紹中已經用到了賦值操作。在R中,可以使用等號(=)或箭頭(<-和->)來對變量進行賦值。

盡管在R中可以靈活地使用以上3種方法進行賦值,但是有時候作為項目管理,應該統一編程風格。例如有的規范中建議在所有函數定義的時候用“=”,而在數值保存的時候使用“<-”。而日常使用中,因為編寫代碼總是有從左到右的習慣,則可以靈活地使用“->”來進行賦值。在R中,還可以使用assign函數來為一個變量名進行賦值,如下所示。

這里,“a”是一個字符,它代表了變量的名稱。
2.4.2 函數
函數式編程是R的一大特色,在R中無時無刻不在調用函數來實現不同的算法。例如,如果想要求得一個數值型向量的均值,可以使用R內置的mean函數實現。

sum函數則可以求得數值型向量的總和。

在日常工作中,常常需要自定義函數來完成特定的任務,例如想利用勾股定理來求直角三角形斜邊的長度。下面,通過構造一個名為“get_length”的函數來完成這個計算任務。

2.4.3 強制類型轉換
R中的基本數據類型在一定條件下可以進行相互轉化。舉一個例子,在R中認為,邏輯型的函數,TRUE的值是1,FALSE的值是0,通過as.numeric函數強制類型轉換,能夠看到這個關系。

這里,把邏輯型數據轉化為了數值型數據。這個操作是可逆的,可以使用as.logical函數把數值1和0重新轉化為邏輯型數據。

邏輯型和數值型的數據都可以使用as.character函數轉化為字符型數據。

說明:在R中,可以使用以“as.”為前綴的函數對數據進行強制類型轉換。
2.4.4 條件判斷
在R中經常要使用條件判斷來實現分支結構,如果滿足某一條件就執行A操作,否則執行B操作,if語句和else語句可以輕松地實現這個過程。

還可以用ifelse語句直接實現這個結構。

2.4.5 循環操作
在批處理過程中,往往需要利用循環來對數據進行遍歷,以計算所有的情況。在R中使用循環非常靈活,例如要打印1到10的所有正整數,可以利用for循環來編寫代碼加以實現。


還可以使用while語句,通過條件判斷來實現上面的操作。

需要注意的是,在上面的操作中,給i定義了初始值1,并在每一步運算結束后加上了1來推進遍歷操作。
最后,還要介紹repeat語句,它相當于“while(1)”,也就是沒有遇到終止操作break,它就會一直運行下去。以下代碼利用repeat語句實現了以上操作。

