R語言某種程度來說本身就是一個函數庫,因為它有大量的函數可供調用,加上函數式程式設計,使得R語言的功能很強大。但是,有時候,根據實際需要,我們還是需要自己動手編寫函數,進而減少代碼的綴餘與工作量。
與其它語言一樣,函數的組成莫過于關鍵字function、形參、是否傳回值。函數的具體用法這裡用幾個例子說明
調用函數
這裡寫一個列印函數示範簡單的參數傳遞功能:
> a
> a('hello world!')
[1] "hello world!"
寫一個函數實作矩陣的乘法:
rm(list = ls())
a
{
m1
n
if(m1!=n)
{
print('error
dimension is not siutable')
return(0)
}
m
n1
s
for(i in 1:m)
for(j in
1:n1)
s[i,j]
return(s)
}
我們構造兩個矩陣
> x
> y
TRUE)
顯然x的列與y的行數不一樣,會不滿足矩陣的乘法。
> mat
[1] "error dimension is not siutable"
x
y
y
mat
> mat
[,1]
[,2]
[1,] 22 28
[2,] 49 64
函數的嵌套
在矩陣運算函數中定義了一個列印新矩陣最大值函數
rm(list = ls())
a
{
maxer
{
print(max(x.))
}
m1
n
if(m1!=n)
{
print('error
dimension is not siutable')
return(0)
}
m
n1
s
for(i in 1:m)
for(j in
1:n1)
s[i,j]
maxer(s)
return(s)
}
x
y
mat
[1] 64
R語言函數與其它語言相比很簡單、友善,實戰可能很複雜,需要根據實際情況,靈活運用。