首页 > 编程开发 > R语言    日期:2021-08-11 / 浏览

符号

当在R中定义一个变量时,实际上就是在环境中将一个符号赋给一个值

x <- 1

实际上就是在全局环境中将符号x赋给一个长度为1,值为1的向量对象

当R解释器对表达式求值时,它会处理所有的符号

如果将若干个符号组合成一个对象,R会解析成该对象的每个符号

> x <- 1
> y <- 2
> z <- 3
> 
> (v <- c(x, y, z))
[1] 1 2 3
> 
> #由于v已定义,更改x的值并不会使v的值也相应变化 
> x <- 10
> v
[1] 1 2 3

可以推迟表达式的求值,使得符号不会立即被解析

> x <- 1
> y <- 2
> z <- 3
> 
> v <- quote(c(x, y, z))
> eval(v)
[1] 1 2 3
> 
> x <- 5
> eval(v)
[1] 5 2 3

使用delayedAssign函数创建一个允诺对象,使得变量只在初次用到时才会被求值

> x <- 1
> y <- 2
> z <- 3
> delayedAssign("v", c(x, y, z))
> x <- 5
> v
[1] 5 2 3

在包中使用允诺对象可以让用户使用对象而无须将其加载到内存中

不过无法判断一个对象是否是允诺对象,也无从知道它是在哪个环境中创建的

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章