Rでは、次のようにパッケージを読み込むことができます。
library(knitr)
または
library("knitr")
に ?library
それは、この議論は文字か名前かもしれないと言います。しかしながら:
is.name(knitr)
Error: object "knitr" not found
class(knitr)
Error: object "knitr" not found
また、これは、パッケージにパッケージの名前でもある関数が含まれている場合に複雑になります。
library(data.table)
class(data.table)
[1] "function"
library(data.table) #returns nothing
どういうわけか、それは関数を渡さないことを知っている data.table
ライブラリ関数に追加する代わりに、パッケージを読み込むための呼び出しとして解釈します(私は思っています)。 Rはこれをどのように扱いますか?
回答:
回答№1は2関連する library()
いう
if (!character.only)
package <- as.character(substitute(package))
私たち自身の小さな機能を作ることができます(library()
複雑です!)この仕組みを探る:
tmpf <- function(x) {
str(substitute(x))
}
tmpf(knitr)
## symbol knitr
私たちは、 quote()
:
str(quote(knitr))
## symbol knitr
しかし、それを渡す tmpf()
そのフォームを保存していない substitute()
コール:
tmpf(quote(knitr))
## language quote(knitr)
私たちが eval(substitute(x))
に tmpf()
、私たちは渡されたときに "オブジェクトニットが見つかりません"を取得します knitr
、シンボルオブジェクト knitr
私たちが合格したとき quote(knitr)
.
ザ character.only
の議論 library()
文字列変数を渡す場合に使用するものです。 値 は "knitr"
;
str_var <- "knitr"
library(str_var,character.only=TRUE)