web-dev-qa-db-ja.com

Rマークダウン:コードチャンクから変数にアクセスする(変数スコープ)

Rマークダウン(knitrパッケージ)で、コードチャンクで計算されたドキュメントの本文内の変数にアクセスできますか?

45
m.templemire

はい。以前に評価した変数をインラインで呼び出すことができます。

例えば以前にdf <- data.frame(x=1:10)data.frameをチャンクに作成していた場合

`r max(df$x)`

生産すべき

10
61
Maiasaura

これはR以外の言語の場合には当てはまらないことを付け加えます。質問は解決され、Rについてはわかっていますが、誰か他の人がこれを役に立つと思うかもしれません。

Engine = 'R'(デフォルト)を除き、すべてのチャンクは個別のセッションで実行されるため、変数を直接共有することはできません。以前のチャンクで作成されたオブジェクトを使用する場合、通常はそれらをファイルに書き込む必要があります(副作用として)。 bashエンジンの場合、Sys.setenv()を使用して、Rからbashに変数をエクスポートできます(例)。別のアプローチは、(実験的な)runrパッケージを使用することです。

ソース

Rの例:

x = 4

print(x)

## [1] 4

Pythonの例2a):

x=1
print(x)

## 1

Pythonの例2b):

print(x)

## Traceback (most recent call last):
##   File "<string>", line 1, in <module>
## NameError: name 'x' is not defined

ちょっとだけ。

4
inktrap

以前に作成した変数にアクセスできます

`r variable`

ただし、変数が数値であり、pdfドキュメントに追加する場合は、変数を文字列に変換する必要があります。

`r toString(variable)`