niszetの日記

10年目エンジニアが最近勉強したことを忘れないようにメモをする

(R) R言語徹底解説 6章

3章に宿題を残したまま…

一旦、6章へ(4,5章はエクササイズなし)

6.1.2 の 2

解答は、以前の記事のリンクを参照。特にbookdownのものはとても良いです。

さて、primitiveではなくNULLを返す関数は具体的にどれだろう?ということで

tmp <- funs[sapply(funs, function(x) is.null(formals(x)) & !is.primitive(x))]

names(tmp)
#  [1] "closeAllConnections"      "contributors"            
#  [3] "Cstack_info"              "date"                    
#  [5] "default.stringsAsFactors" "extSoftVersion"          
#  [7] "getAllConnections"        "geterrmessage"           
#  [9] "getLoadedDLLs"            "getRversion"             
# [11] "getTaskCallbackNames"     "getwd"                   
# [13] "iconvlist"                "is.R"                    
# [15] "l10n_info"                "La_library"              
# [17] "La_version"               "libcurlVersion"          
# [19] "licence"                  "license"                 
# [21] "loadedNamespaces"         "loadingNamespaceInfo"    
# [23] "memory.profile"           "OlsonNames"              
# [25] "pcre_config"              "R.Version"               
# [27] "search"                   "searchpaths"             
# [29] "stderr"                   "stdin"                   
# [31] "stdout"                   "sys.calls"               
# [33] "Sys.Date"                 "sys.frames"              
# [35] "Sys.getpid"               "Sys.info"                
# [37] "Sys.localeconv"           "sys.nframe"              
# [39] "sys.on.exit"              "sys.parents"             
# [41] "sys.status"               "Sys.time"                
# [43] "tempdir"                 

となりました。内部で.Internalを呼んでいるものが多いですが、それに限らないようです。

これらの関数の中身を見るのであれば、

lapply(tmp, body)

ですね(6章本文の通り。lapplyは6章より後の話だけど…)

エクササイズ難しい~

ということで。

Enjoy!!