符号
当在R中定义一个变量时,实际上就是在环境中将一个符号赋给一个值
1
|
x <- 1
|
实际上就是在全局环境中将符号x赋给一个长度为1,值为1的向量对象
当R解释器对表达式求值时,它会处理所有的符号
如果将若干个符号组合成一个对象,R会解析成该对象的每个符号
1
2
3
4
5
6
7
8
9
10
11
|
> 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
|
可以推迟表达式的求值,使得符号不会立即被解析
1
2
3
4
5
6
7
8
9
10
11
|
> 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函数创建一个允诺对象,使得变量只在初次用到时才会被求值
1
2
3
4
5
6
7
|
> x <- 1
> y <- 2
> z <- 3
> delayedAssign( "v" , c(x, y, z))
> x <- 5
> v
[1] 5 2 3
|
在包中使用允诺对象可以让用户使用对象而无须将其加载到内存中
不过无法判断一个对象是否是允诺对象,也无从知道它是在哪个环境中创建的
到此这篇关于R语言符号知识点汇总的文章就介绍到这了,更多相关R语言符号内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.kancloud.cn/sacomplex/rlanguage/316837