10.5 在函数中赋值
注意任何在函数内部的普通赋值都是局部的暂时的,当退出函数时都会丢失。因此函数中的赋值语句 X <- qr(X)
不会影响调用该函数的实参的值。
如果要彻底理解 R 赋值管理的原则,读者需要熟悉解析框架(Evalution frame)的概念。这属于高级内容,不在这里深入讨论。
如果想在一个函数里面全局赋值或者永久赋值,可以采用“强赋值”(superassignment)操作符 <<-
或者采用函数 assign()
。用 help
命令可以得到更具体的说明。SPLUS 用户需要注意 <<-
在 R 里面有着不同的语义(semantics)。这些会在变量作用范围部分详细讨论。