3.1编写自己的R函数2.编写自定义R函数【例3-1】编写一个计算最贵水果和最便宜水果每斤的价格差的程序,要求用一个向量来存储水果每斤单价。##myR_3_2.R#myfu_1<-function(x)x.max<-max(x)x.min<-min(x)y<-x.max-x.minreturn(y)运行结果:> x <- c(5,3,6,12,2,20)>myfu_1(x)[1]18
3.1 编写自己的R函数 2. 编写自定义R函数 # # myR_3_2.R # myfu_1<-function(x){ x.max<- max(x) x.min<- min(x) y <- x.max - x.min return(y) } 运行结果: > x <- c(5,3,6,12,2,20) > myfu_1(x) [1] 18 【例3-1】编写一个计算最贵水果和最便宜水果每斤的价格差的程序,要求用一个向量来存储水果每斤单价
3.1编写自己的R函数3.简化R程序(1)可以省略最后一行的return()代码,R语言默认会返回最后一行程序代码:(2)在自定义的函数中函数主体需要用“()”括起来的。在R语言中有一项规定,如果函数的主体只有一行,是可以省略“”4.返回值(1)return()函数可以把一个值返回给主调函数;(2)return()函数可以结束R程序
3.1 编写自己的R函数 3. 简化R程序 (1)可以省略最后一行的return( )代码,R语言默认会返回最后一行程序代码; (2)在自定义的函数中函数主体需要用“{}”括起来的。在R语言中有一项规定,如果 函数的主体只有一行,是可以省略“{}”。 4. 返回值 (1)return( )函数可以把一个值返回给主调函数; (2)return( )函数可以结束R程序
3.1编写自己的R函数5.函数的参数(1)多个参数的函数:如果一个函数有多个参数,那么只需要将多个参数放到函数的参数表中,并且各个参数之间用“,”隔开即可;【例3-4】编写一个函数,用于分别打印传入的第一个参数和第二个参数。代码如下##myR_3_7.R#myfu_1<-function(x1,x2)y<-sprintf("第一个参数:%s,第二个参数:%s",x1,x2)print(y)位置一致原则7运行结果:>myfu_1("first","second")[1]“第一个参数:first,第二个参数:second">myfu_1("second","first")[1]"第一个参数:second,第二个参数:first
3.1 编写自己的R函数 5. 函数的参数 (1)多个参数的函数:如果一个函数有多个参数,那么只需要将多个参数放到函数的参 数表中,并且各个参数之间用“,”隔开即可; # # myR_3_7.R # myfu_1 <- function(x1,x2){ y <- sprintf(“第一个参数:%s, 第二个参数:%s”, x1, x2) print(y) } 运行结果: > myfu_1(“first”, “second”) [1] “ 第一个参数:first, 第二个参数:second ” > myfu_1(“second”, “first”) [1] “ 第一个参数:second, 第二个参数:first ” 【例3-4】编写一个函数,用于分别打印传入的第一个参数和第二个参数。代码如下: 位置一致原则
【例3-1】编写一个函数,用于分别打印传入的第一个参数和第二个参数。代码如下## myR_3_7.R#myfu_1<-function(x1,x2)y<-sprintf("第一个参数:%s,第二个参数:%s",x1,x2)print(y)名称一致原则运行结果:>myfu1(x1="first"x2="second")[1]"第一个参数:first,第二个参数:second">myfu1(x2="second",“first"[1]第一个参数:first,第二个参数:second
# # myR_3_7.R # myfu_1 <- function(x1,x2){ y <- sprintf(“第一个参数:%s, 第二个参数:%s”, x1, x2) print(y) } 运行结果: > myfu_1(x1=“first”, x2=“second”) [1] “ 第一个参数: first, 第二个参数: second ” > myfu_1(x2=“second”, “first”) [1] “ 第一个参数: first, 第二个参数: second ” 【例3-1】编写一个函数,用于分别打印传入的第一个参数和第二个参数。代码如下: 名称一致原则
【例3-4】编写一个函数,用于分别打印传入的第一个参数和第二个参数。代码如下## myR 3 8.R#myfu_1<-function(x1,x2)y<-sprintf("第一个参数:%s,第二个参数:%s",x1,x2)print(y)前缀一致原则运行结果:>myfu_1(x="first"“second")Errorin myfu 1(x="second","first")argument 1 matches multiple formal arguments
# # myR_3_8.R # myfu_1 <- function(x1,x2){ y <- sprintf(“第一个参数:%s, 第二个参数:%s”, x1, x2) print(y) } 运行结果: > myfu_1(x=“first”, “second”) Error in myfu_1(x = "second", "first") : argument 1 matches multiple formal arguments 【例3-4】编写一个函数,用于分别打印传入的第一个参数和第二个参数。代码如下: 前缀一致原则