2015-07-20 81 views
8

如果我檢查sqrt功能的環境中,我得到NULL什麼是NULL環境?

> environment(sqrt) 
NULL 

在另一方面,該功能split這也是在基礎包中發現有環境:

> environment(split) 
<environment: namespace:base> 

爲什麼這兩個函數有不同的環境,NULL環境是什麼意思?

回答

9

sqrt是一個原始函數,沒有R代碼。每Hadley Wickham's advanced R頁:

基本功能

有一個例外,其功能有三個組成部分的規則。原始函數,如sum(),直接調用 C代碼與.Primitive()並且不包含R代碼。因此 其formals(),body()environment()都是NULL