myfunction<-function(arg1,arg2,...){
statement return (object )}
1.给自定义的函数一个名称“myfunction”
2.function()内为参数,可以设置默认值,等待使用自定义函数mufunction时赋值。
3.statement 是功能执行语句。
4.return 是最终输出的值
eg1:计算两数相乘
function1 <- function(a,b) {
result= a*b #function的主体部分,包含功能的语句
print(result) #最终的输出值
}
functin1(2,3)
[1] 6
eg2:输出多个结果
function2 <- function(a,b){
print(a^2)
print(b)
print(a)
}
function2 (2,3)
[1] 4
[1] 3
[1] 2
eg3:
function3 <- function(a,b){
plot(a,b)
return(a+b)
}
function3(2,3)
[1] 5
function(2,3)
eg4:计算1-a中所有数的平方
function4 <- function(a){
for(i in 1:a){
b = i^2
print(b)
}
}
function4(4)
[1] 1
[1] 4
[1] 9
[1] 16
eg5:用参数值调用函数(按位置和名称)
函数调用的参数可以按照函数中定义的顺序提供,也可以按`不同的顺序`提供,
只需要分配给参数的名称即可。
function5 <- function(a,b,c){
result=a*b +c
print(result)
}
一样的结果
function5(2,3,4)
function5(a=2,c=4,b=3)
eg6:
function6 <- function(x,npar=TRUE,print=TRUE) {
if (!npar) {
center <- mean(x); spread <- sd(x) #mean:平均数;sd:标准差
} else {
center <- median(x); spread <- mad(x) #median:中位数;mad:绝对中位差
}
if (print & !npar) {
cat("Mean=", center, "\n", "SD=", spread, "\n")
} else if (print & npar) {
cat("Median=", center, "\n", "MAD=", spread, "\n")
}
result <- list(center=center,spread=spread)
return(result)
}
x <- rnorm(10,0,1) #生成10个均值为0,标准差为1的正态随机数
function6(x)
Median= -0.3879296
MAD= 1.434252
$center
[1] -0.3879296
$spread
[1] 1.434252