函数构成
先前提到过,一个自定义R函数由三个部分组成:
• 函数体body(),即要函数定义内部要执行的代码;
• formals(),即函数的形式参数表以及可能存在的缺省值;
• environment(),是函数定义时所处的环境, 这会影响到参数表中缺省值与函数体中非局部变量的的查找。
my_fn = function(x,y=100) x+yenvironment(my_fn)<environment: R_GlobalEnv>body(my_f){x * 3}body(my_fn)x + yformals(my_fn)y[1] 100
R 的环境
“环境”是R语言比较复杂的概念, 对于没有嵌套定义在函数内的函数, 环境一般是R的全局工作空间(全局环境); 嵌套定义的函数则会有一个私有的环境, 而且对于利用“函数工厂”生成的函数, 还可以将其私有环境与函数对象一起保存下来, 生成带有状态的函数。
> my_f = function() my_local = function() 5> a = my_f()> afunction() 5<environment: 0x7facc0191120>
