实验目的

熟悉并掌握R语言中函数的定义及编写

实验原理

在实现复杂算法时,编写函数可以重复使用,修改也很容易。常用的函数控制命令以及语法是:function(参数) 语句。

实验步骤

创建一个简单的函数并调用

> f1 <- function(x){x^2+sin(x)}
> f1(10)
[1] 99.45598
> f1(1:9)
[1]  1.841471  4.909297  9.141120 15.243198 24.041076 35.720585 49.656987 64.989358 81.412118

将x=10代入,返回结果99.45598,如果将向量1:9带入,则返回一组数。

如果函数中包含多条语句,则函数的返回值是计算的最后结果,同样也可以使用return函数确定返回函数值,如下例:

> f2 <- function(x,y){x^2;x+y;x^2+y}
> f2(2,2)
[1] 6
> f3 <- function(x,y){return(x^2);x+y;x^2+y}
> f3(3,3)
[1] 9

如下例的函数可以返回n以内的质数:

> primes <- function(n){
+     p <- 2:n
+     i <- 1
+     while (p[i] <= sqrt(n)) {
+         p <-p[p %% p[i] != 0 | p==p[i]]
+         i <- i+1
+     }
+     p
+ } 
> primes(100)
 [1]  2  3  5  7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

如下面的代码自定义统计函数:

> stat <- function(x,npar=TRUE,print=TRUE) {
+     if (!npar) {
+         center <- mean(x); spread <- sd(x) 
+     } else {
+         center <- median(x); spread <- mad(x) 
+     }
+     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)
> stat(x)
Median= -0.1500069 
 MAD= 0.4998093 
$center
[1] -0.1500069

$spread
[1] 0.4998093

results matching ""

    No results matching ""