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

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

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

返回顶部
顶部