這篇文章來講 R Lang 中的基本函式。關於函式,我們在之前的許多文章中都有接觸過。函式可以說是任何一門程式語言中必備的內容。任何一門高級程式語言,甚至可以沒有變數的概念,但不能沒有函式。函式的一些基本概念就不過多闡述。我們將直接從內建函式開始。
數列函式
使用 :
、seq()
或 sequence()
來產生數列向量。
以下是 seq()
函式的定義:
解釋一下引數:
- from = 1 數列起始值
- to = 1 數列結束值
- by 數列每次增加值
- length.out 數列長度(元素數目)
sequence()
函式比 seq()
函式更為強大,支援傳入向量,來創建符合向量要求的數列。
重複元素函式
使用 rep()
函式來創建一個重複數值的數列。其定義如下:
解釋一下引數:
- x:使用者想要相同重複元素的數值向量。
- times:數值向量x重複的次數。
- each:數值向量x每個元素重複的次數。
- length.out = NA:數值向量x重複後的長度。
算數函式
R Lang 中內建了許多算數函式,包含指數、對數、Gamma 函數、Beta 函數、三角函數等。
符號 | 定義 |
---|---|
round(x, digits = 0) | 設定小數位數 |
signif(x, digits = 6) | 設定實數列印出的小數位數 |
trunc(x) | 將 x 的小數截斷,向 0 靠近 |
ceiling(x) | 大於 x 的最小整數 |
floor(x) | 小於 x 的最大整數 |
sign(x) | 求 x 的正負值,回傳 1,0 或 -1 |
abs(x) | 求 x 的絕對值 |
sqrt(x) | x 開平方根 |
exp(x) | |
expm1(x) | 當 ,計算 |
log(x) | |
log10(x) | |
log2(x) | |
logb(x, base = z) | |
log1p(x) | 當 ,計算 |
gamma(x) | |
beta(a, b) | |
lbeta(a, b) | |
digamma(x) | |
trigamma(x) | |
psigamma(x, deriv = 0) | |
sin(x) cos(x) tan(x) | 三角函數 |
asin(x) acos(x) atan(x) | 反三角函數 |
sinh(x) cosh(x) tanh(x) | 雙曲函數 |
asinh(x) acosh(h) atanh(x) | 反雙曲函數 |
組合與階乘函式
lchoose()
和 lfactorial()
在上述函式的基礎上取自然對數。
選擇資料函式
函式 all(x)
與 any(x)
可以用來查看特定向量物件 obj.vec
的元素是否符合某些特定條件,回傳邏輯純量 TRUE 或 FALSE。函式 which()
查看特定向量物件 obj.vec
的元素是否符合某些特定條件,然後回傳一個下標向量,紀錄向量物件符合某些特定條件的元素位置。函式指令 which.max()
與 which.min()
是函式指令 which()
的延伸。
排序函式
函式 | 說明 |
---|---|
rev(x) | 將向量 x 元素反轉列出 |
rank(x) | 向量 x 元素的對應排序相同數值內設排序方式 |
sort(x) | 向量 x 從小到大列出 |
order(x) | 將向量 x 從小到大排序後的向量之元素 |
它們的定義:
引數:
-
x: 引數 x 為向量
-
decreasing:
- decreasing = FALSE 為 R Lang 內設從小到大排序
- decreasing = TRUE 則從大到小排序
-
na.last:
- na.last = TRUE 為 R Lang 內設將 NA 排序在最大
- na.last = FALSE 為 R Lang 內設將 NA 排序在最小
- na.last = NA 為 R Lang 內設將 NA 排除
-
函式
rev(x)
回傳一個向量 z,是將向量 x 元素反轉 -
函式
sort(x)
回傳一個向量 z,是將向量 x 的元素從小到大排序的結果列出 -
函式
rank(x)
回傳一個向量 z,是將向量 x 每一個元素從小到大排序之後,x 元素之相對順序 (rank) -
“average”: 相同數值都是回傳平均排序值
-
“first”: 相同數值都是回傳依序由小到大不同排序值
-
“last”: 相同數值都是回傳依序由大到小排序值
-
“random”: 相同數值回傳隨機排序值
-
“max”: 相同數值回傳最大排序值
-
“min”: 相同數值回傳最小排序值
物件查看與強制轉換函式
使用 is.object()
,比如 is.na()
,is.vector()
等查看某一特定物件是否屬於某一類別。
使用 as.object()
來強制轉換類別。