在 R 中應用多引數函式
在任何程式語言中,函式都是必不可少的。函式是一個程式碼塊,它可以被呼叫來執行程式設計中的特定操作。
在 R 中,我們有內建的函式,也有使用者定義的函式。我們也可以直接將函式應用於一個或多個引數的列表或向量。
在本教程中,我們將使用下面的向量和函式。
f1 <- function(v1,v2){
v1+v2
}
vec1 <- c(1,5,9)
vec2 <- c(2,7,6)
這個函式比較簡單,它只是增加了兩個元素,我們有兩個各有三個元素的向量。
在本教程中,我們將使用 sapply()
、lapply()
和 mapply()
函式,我們將對整個向量應用一個函式,並將多個引數傳遞給同一個,並將向量作為引數傳遞給函式。
在我們要將一個函式應用於給定的向量或列表的情況下,我們可以使用 lapply()
或 sapply()
。
lapply()
函式返回一個列表作為最終輸出。例如:
lapply(vec1,f1,5)
[[1]]
[1] 6
[[2]]
[1] 10
[[3]]
[1] 14
typeof(lapply(vec1,f1,5))
[1] "list"
如你所見,我們將 f1
函式傳遞給 vec1,並傳遞另一個引數 5,因為該函式需要兩個引數,這只是在所有元素上加 5。
sapply()
執行與 lapply()
函式相同的功能,但被認為是兩者中效率較高的,因為它簡化了輸出,結果不一定是一個列表。
下面的程式碼片段顯示瞭如何操作。
sapply(vec1,f1,5)
[1] 6 10 14
typeof(sapply(vec1,f1,5))
[1] "double"
另一個有趣的函式是 mapply()
。它將一個函式應用於作為引數傳遞的向量。該函式應用於向量的第一個元素,第二個元素,以此類推。
mapply(f1,vec1,vec2)
[1] 3 12 15
請注意,使用 mapply()
函式,我們能夠將向量作為多個引數傳遞給一個函式,因為它返回同一位置的元素之和。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn