[R Lang] R Lang與高級醫學統計學(6)
這篇文章來講R Lang中的基本函式。關於函式,我們在之前的許多文章中都有接觸過。函式可以說是任何一門程式語言中必備的內容。任何一門高級程式語言,甚至可以沒有變數的概念,但不能沒有函式。函式的一些基本概念就不過多闡述。我們將直接從內建函式開始。
數列函式
使用:
、seq()
或sequence()
來產生數列向量。
以下是seq()
函式的定義:
1 | seq(from = 1, to = 1, |
解釋一下引數:
- from = 1 數列起始值
- to = 1 數列結束值
- by 數列每次增加值
- length.out 數列長度(元素數目)
sequence()
函式比seq()
函式更為強大,支援傳入向量,來創建符合向量要求的數列。
重複元素函式
使用rep()
函式來創建一個重複數值的數列。其定義如下:
1 | rep(x, times = 1, length.out = NA, each = 1) |
解釋一下引數:
- 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()
的延伸。
1 | x.vec <- c(-1:2) |
排序函式
函式 | 說明 |
---|---|
rev(x) | 將向量x元素反轉列出 |
rank(x) | 向量x元素的對應排序相同數值內設排序方式 |
sort(x) | 向量x從小到大列出 |
order(x) | 將向量x從小到大排序後的向量之元素 |
它們的定義:
1 | rev(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()
來強制轉換類別。