《資料科學 R語言實現》 1 4 理解環境

2021-09-23 15:06:54 字數 1712 閱讀 1106

除了函式名、函式體和形參,環境也是函式的另乙個基本組成部分。 簡單地說,環境是r管理和儲存各種型別變數的地方。除了全域性環境外,每乙個函式會在建立之初啟用自己的環境。在本教程中,我們會展示每乙個函式的環境是如何工作的。

確保你已經在作業系統中安裝了r語言,完成了之前的步驟。

執行下列步驟來使用環境。

1.你可以使用函式environment來檢視當前的環境:

2.你也可以使用.globalenv和globalenv來瀏覽全域性環境:

3.你可以使用函式identical來比較環境:

4.而且,你可以按照如下方法建立乙個新的環境:

5.你可以找到不同環境中的變數:

6.這裡,你可以建立函式addnum,並使用environment得到函式的環境:

7.你也可以判斷函式的環境是否屬於程式包:

8.接下來,你可以在函式中列印環境:

9.而且,你可以比較函式內部和外部的環境:

我們可以把r環境看作儲存和管理變數的地方。也就是說,只要我們建立了r的乙個函式或者物件,我們就開闢了乙個環境。頂層環境預設為是全域性環境r_globalenv,我們可以使用函式environment確定當前的環境。然後,我們可以使用.globalenv或者globalenv列印全域性環境,並使用函式identical進行比較。

除了全域性環境,我們也可以建立自己的環境,並把變數分配到新的環境。在本例中,我們建立了環境myenv,並使用環境名加美元符號的方法,把x

接下來,我們要確定乙個函式的環境。建立名為addnum的函式之後,我們可以使用environment來獲取它的環境。由於我們是在全域性環境下建立的,函式顯然是屬於全域性環境的。另外,當我們獲取函式lm的環境時,卻得到了相關的程式包。這意味著,函式lm位於程式包stat的命名空間中。

我們還可以在函式內部列印出當前的環境。 通過呼叫函式addnum2,我們可以確定,函式environment輸出的環境名與全域性環境不同。也就是說,在我們建立函式的同時,我們也建立了乙個新的環境,以及指向父環境的指標。為了檢視這一特點,我們建立了另乙個函式addnum3,其帶有巢狀func1。我們可以列印出func1和addnum3的內部環境,而且二者的環境有可能是完全不同的。

為了獲取父環境,我們可以使用函式parent.env。在下面的例子中,我們可以看到parentenv的父環境是r_globalenv:

《資料科學 R語言實現》 1 6 理解閉包

函式是r語言的一級成員。換句話說,你可以給乙個函式傳遞另乙個函式。在之前的教程中,我們展示了如何建立乙個被命名的函式。然而,我們也可以建立乙個不帶名字的函式,即閉包 也就是匿名函式 在本教程中,我們會展示如何在標準函式中使用閉包。確保你已經在作業系統中安裝了r語言,完成了之前的步驟。執行下列步驟,在...

《資料科學 R語言實現》 1 2 建立R函式

r語言是函式的集合 使用者可以在專案中使用各個程式包中的內建函式,或者為專門的目的定義新的函式。在本教程中,我們會展示如何建立乙個r函式。執行下列步驟來建立你的第乙個r函式。1.在r控制台中鍵入下列 建立第乙個函式 2.使用下列命令,執行使用者定義的函式addnum 或者,你也可以不使用return...

《資料科學 R語言實現》 3 7 捨棄資料

在之前的教程中,我們介紹了如何修改和過濾資料集。這些步驟基本上涵蓋了資料預處理和資料準備的主要過程。但是,我們還想找出資料集中的壞資料。那些壞資料或者不想要的資料應該丟棄,避免生成誤導的結果。這裡,我們會介紹一些移除無用資料的實用方法。按照3.3節 轉換資料型別 教程,把匯入資料的每個屬性轉換成合適...