學習筆記,僅供參考,有錯必糾
r語言的函式環境空間
在r語言中,變數、物件、函式都存在於環境空間中,而函式又可以有自己的環境空間,我們可以在函式內再定義變數、物件和函式,迴圈往復就形成了我們現在用的r語言環境系統。
封閉環境
封閉環境是對函式空間的乙個靜態定義,在函式定義時指向所在的環境空間。我們在當前的環境空間定義乙個函式f1,並通過environment函式來檢視封閉環境:
y
f1 environment(f1) #
繫結環境
繫結環境就是把函式的定義和呼叫通過函式變數連起來。
我們新建乙個環境空間e,在e的環境空間中定義乙個函式g,就相當於把乙個函式繫結到g變數,通過找到e環境空間中的g變數,就可以呼叫這個函式:
e
e$g
#檢視函式g的定義
e$g #function()
#呼叫函式g
e$g() #1
在環境空間e中再定義乙個巢狀函式:
e
e$f
e$f # function() }
e$f() # function()
e$f()() #1
檢視函式g和f的封閉環境:
environment(e$g) #environment(e$f) #
執行環境
執行環境是函式被呼叫時產生的記憶體環境。執行環境是臨時的,當函式執行完成後,執行環境會被自動銷毀。在執行環境中定義的變數、物件和函式,也是動態建立的,隨著記憶體釋放而銷毀。
定義乙個函式g,在函式g中,有臨時變數a和引數x:
g
g(10)
#輸出start
are you ok?
[1] 11
#輸出end
g(10)
#輸出start
are you ok?
[1] 11
#輸出end
可以看到,我們兩次執行得到的環境位址是不同的,明函式的執行時環境,是記憶體臨時分配的。
呼叫環境
呼叫環境是指函式是在哪個環境中被呼叫的。匿名函式通常是在定義的封閉環境中被呼叫。
h
}x r1
r1() #20
x #5
函式環境空間圖示
R語言中的引號
aa this is an example.1 this is an example.bb this is an example.1 this is an example.identical aa,bb 1 true anne s home 1 anne s home anne s home 1 a...
R語言中的陣列
陣列 不同於矩陣和資料框,維度大於2。r中最簡單的陣列 3維。行,列,面 如下兩行 三列 四面的陣列。dim1 c a1 a2 dim2 c b1 b2 b3 dim3 c c1 c2 c3 c4 dat array 1 24,c 2,3,4 dimnames list dim1,dim2,dim3...
理解R語言中的factor
1.2.在r語言中,因子 factor 表示的是乙個編號或者乙個等級,即,乙個點。例如,人的個數可以是1,2,3,4 那麼因子就包括,1,2,3,4 還有描述協變數水平時,會用到高 中 低,也是因子,因為這些都是乙個點。與之區別的向量,是乙個連續性的值,例如,數值中有1,1.1,1.2 可以作為數值...