[R Lang] R Lang 與高級醫學統計學(6)

2024 年 4 月 10 日
文章摘要
FakeGPT
加載中...
此內容由人工不智慧生成。

這篇文章來講 R Lang 中的基本函式。關於函式,我們在之前的許多文章中都有接觸過。函式可以說是任何一門程式語言中必備的內容。任何一門高級程式語言,甚至可以沒有變數的概念,但不能沒有函式。函式的一些基本概念就不過多闡述。我們將直接從內建函式開始。

數列函式

使用 :seq()sequence() 來產生數列向量。

以下是 seq() 函式的定義:

seq(from = 1, to = 1,
by = ((to - from)/(length.out - 1)),
length.out = NULL,
along.with = NULL, ...)

解釋一下引數:

  • from = 1 數列起始值
  • to = 1 數列結束值
  • by 數列每次增加值
  • length.out 數列長度(元素數目)

sequence() 函式比 seq() 函式更為強大,支援傳入向量,來創建符合向量要求的數列。

重複元素函式

使用 rep() 函式來創建一個重複數值的數列。其定義如下:

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)exe^x
expm1(x)x1\lvert x \rvert \ll 1,計算 ex1e^x - 1
log(x)lnx\ln x
log10(x)lgx\lg x
log2(x)log2x\log_2 {x}
logb(x, base = z)logzx\log_z {x}
log1p(x)x1\lvert x \rvert \ll 1,計算 ln(1+x)\ln(1 + x)
gamma(x)Γ(x)=(x1)!=0t(x1)exp(t)dt\Gamma (x) = (x - 1)! = \int_0^{\infty} t^{(x - 1)} exp(-t)dt
beta(a, b)B(a,b)=(Γ(a)Γ(b))/(Γ(a+b))Β(a, b) = (\Gamma(a)\Gamma(b))/(\Gamma(a + b))
lbeta(a, b)ln[B(a,b)]\ln[Β(a, b)]
digamma(x)ddxln[Γ(x)]\frac{d}{dx}\ln[\Gamma(x)]
trigamma(x)d2dx2ln[Γ(x)]\frac{d^2}{dx^2}\ln[\Gamma(x)]
psigamma(x, deriv = 0)dpdxpln[Γ(x)]\frac{d^p}{dx^p}\ln[\Gamma(x)]
sin(x) cos(x) tan(x)三角函數
asin(x) acos(x) atan(x)反三角函數
sinh(x) cosh(x) tanh(x)雙曲函數
asinh(x) acosh(h) atanh(x)反雙曲函數

組合與階乘函式

choose(n,k)=(nk),kNchoose(n, k) = \tbinom{n}{k}, k \in N

fractorial(x)=x!fractorial(x) = x!

lchoose()lfactorial() 在上述函式的基礎上取自然對數。

選擇資料函式

函式 all(x)any(x) 可以用來查看特定向量物件 obj.vec 的元素是否符合某些特定條件,回傳邏輯純量 TRUE 或 FALSE。函式 which() 查看特定向量物件 obj.vec 的元素是否符合某些特定條件,然後回傳一個下標向量,紀錄向量物件符合某些特定條件的元素位置。函式指令 which.max()which.min() 是函式指令 which() 的延伸。

x.vec <- c(-1:2)
all(x.vec > 0)
## [1] FALSE
any(x.vec > 0)
## [1] TRUE
which(x.vec > 0)
## [1] 3 4
which.max(x.vec)
## [1] 4
which.min(x.vec)
## [1] 1

排序函式

函式說明
rev(x)將向量 x 元素反轉列出
rank(x)向量 x 元素的對應排序相同數值內設排序方式
sort(x)向量 x 從小到大列出
order(x)將向量 x 從小到大排序後的向量之元素

它們的定義:

rev(x)
sort(x, decreasing = FALSE, na.last = NA, ...)
rank(x, na.last = TRUE,
ties.method = c("average", "first", "last", "random", "max", "min"))
order(x, ..., na.last = TRUE, decreasing = FALSE,
method = c("shell", "radix"))

引數:

  • 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() 來強制轉換類別。

[R Lang] R Lang 與高級醫學統計學(6)
https://blog.kynix.tw/posts/1731065591549/
作者
Adrian Chen
建檔時間
2024 年 4 月 10 日
協議
BY-NC-SA 4.0
姓名標示-非商業性-相同方式分享 4.0 國際