2.1基本概念3.实际参数为变量时的注意事项实际参数为具体的数值,即常量的形式,但也可以采用变量的形式。> set.seed(1)>x1=3; x2=0; x3=1>rnorm(n=x1,mean=x2,sd=x3)[1] -0.6264538 0.1836433 -0.8356286若变量名和形式参数名称一样,容易将变量当作形式参数,但实际上是实际参数。如:> set.seed(1)>n=3;mean=-1;sd=1>rnorm(mean,n,sd)Errorinrnorm(mean,n,sd):参数不对
3. 实际参数为变量时的注意事项 实际参数为具体的数值,即常量的形式,但也可以采用变量的形式。 2.1 基本概念 > set.seed(1) > x1=3; x2=0; x3=1 > rnorm(n=x1,mean=x2,sd=x3) [1] -0.6264538 0.1836433 -0.8356286 若变量名和形式参数名称一样,容易将变量当作形式参数,但实际上是实际参数。如: > set.seed(1) > n=3; mean=-1; sd=1 > rnorm(mean,n,sd) Error in rnorm(mean, n, sd) : 参数不对
2.1基本概念4.函数的默认参数在R语言中,很多函数的参数列表比较长,在调用时需指定很多参数的值,但在实际使用过程中,很多参数都有默认值。当我们不需要修改默认值时,就不需要在调用时将其列出来。此外,在省略默认参数时,有时可以根据需要使用“"表示所省略的参数的位置。如:>set.seed(1)>rnorm(3)[1]-0.62645380.1836433-0.8356286>set.seed(1)>rnorm(3,sd=1)#第二个形式参数mean取默认值而被省略,形式参数sd的默认顺序是第三个,而无法省略参数名[1]-0.62645380.1836433-0.8356286>set.seed(1)>rnorm(3,1)#使用""标明第二个形式参数被省略,第三个形式参数就可以省略参数名称[1]-0.62645380.1836433-0.8356286
4. 函数的默认参数 在R语言中,很多函数的参数列表比较长,在调用时需指定很多参数的值,但在实际使用 过程中,很多参数都有默认值。当我们不需要修改默认值时,就不需要在调用时将其列出 来。此外,在省略默认参数时,有时可以根据需要使用“,”表示所省略的参数的位置。如: 2.1 基本概念 > set.seed(1) > rnorm(3) [1] -0.6264538 0.1836433 -0.8356286 > set.seed(1) > rnorm(3,sd=1) #第二个形式参数mean取默认值而被省略,形式参数sd的默认顺序是第三个,而无法省略参 数名 [1] -0.6264538 0.1836433 -0.8356286 > set.seed(1) > rnorm(3,1) #使用“,”标明第二个形式参数被省略,第三个形式参数就可以省略参数名称 [1] -0.6264538 0.1836433 -0.8356286
2.1基本概念5.函数嵌套函数的实际参数除了常量和变量,也可以是函数。这种将一个函数直接作为另一个函数的参数的调用形式即函数嵌套。正确的函数嵌套可以提高程序的运行效率,但同时增加了阅读难度,因此在使用时应慎重。> set.seed(1)>sum(rnorm(3))[1] -1.278439课堂练习:设置5个服从均值为2,标准差为4的正态分布的随机数,赋值给一个变量,并对这个变量求和
5. 函数嵌套 函数的实际参数除了常量和变量,也可以是函数。这种将一个函数直接作为另一个函数的 参数的调用形式即函数嵌套。正确的函数嵌套可以提高程序的运行效率,但同时增加了阅 读难度,因此在使用时应慎重。 2.1 基本概念 > set.seed(1) > sum(rnorm(3)) [1] -1.278439 课堂练习:设置5个服从均值为2,标准差为4的正态分布的 随机数,赋值给一个变量,并对这个变量求和
2.1基本概念6.函数被赋值有的函数用于提取变量的某些元素或属性。其中,部分函数可以放在赋值符号左侧,形式上表现为对函数赋值,实际上是对函数的实际参数进行修改。如:>x=1#显示x的值>x[1] 1#函数names()用于返回x中数据的名称,但x在建立时没有对其命名>names(x)所以返回NULLNULL#函数names()放在="左侧,此时,其作用是将数据名称修改为"a>names(x)='a'#重新显示x的值,此时x中的数据1有了一个名称为“a">xa1#利用函数names()再次提取x中元素的名称>names(x)[1] "a
6. 函数被赋值 有的函数用于提取变量的某些元素或属性。其中,部分函数可以放在赋值符号左侧,形式 上表现为对函数赋值,实际上是对函数的实际参数进行修改。如: 2.1 基本概念 > x=1 > x #显示x的值 [1] 1 > names(x) #函数names()用于返回x中数据的名称,但x在建立时没有对其命名, 所以返回NULL NULL > names(x)='a' #函数names()放在“=”左侧,此时,其作用是将数据名称修改为“a” > x #重新显示x的值,此时x中的数据1有了一个名称为“a” a 1 > names(x) #利用函数names()再次提取x中元素的名称 [1] "a
2.1基本概念7.赋值符号在参数传递中的误用在将实际参数传递给形式参数的时候,需使用传值符号“="连接两个参数。虽然赋值符号如:“<-"大多数时候可以被“-”替代而不影响计算结果,但反过来却很容易出问题。>set.seed(1)>n=3;mean=0;sd=1>x=rnorm(n,sd<- 1)>x[1]0.37354621.18364330.1643714
7. 赋值符号在参数传递中的误用 在将实际参数传递给形式参数的时候,需使用传值符号“=”连接两个参数。虽然赋值符号 “<-”大多数时候可以被“=”替代而不影响计算结果,但反过来却很容易出问题。如: 2.1 基本概念 > set.seed(1) > n=3; mean=0; sd=1 > x=rnorm(n,sd <- 1) > x [1] 0.3735462 1.1836433 0.1643714