符號
當(dāng)在R中定義一個變量時,實際上就是在環(huán)境中將一個符號賦給一個值
1
|
x <- 1 |
實際上就是在全局環(huán)境中將符號x賦給一個長度為1,值為1的向量對象
當(dāng)R解釋器對表達(dá)式求值時,它會處理所有的符號
如果將若干個符號組合成一個對象,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的值也相應(yīng)變化 > x <- 10 > v [1] 1 2 3 |
可以推遲表達(dá)式的求值,使得符號不會立即被解析
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函數(shù)創(chuàng)建一個允諾對象,使得變量只在初次用到時才會被求值
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 |
在包中使用允諾對象可以讓用戶使用對象而無須將其加載到內(nèi)存中
不過無法判斷一個對象是否是允諾對象,也無從知道它是在哪個環(huán)境中創(chuàng)建的
到此這篇關(guān)于R語言符號知識點匯總的文章就介紹到這了,更多相關(guān)R語言符號內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.kancloud.cn/sacomplex/rlanguage/316837