0

Org Babelを学びたいので、 Org の Code Blocks を調べています。

基本チュートリアルのスクリプトを実行しようとしていますが、何らかの理由で実行できません。

関数への入力としてテーブルをフィードすることになっています。これはテーブルです:

#+name: tbl-example-data()
#+begin_src R 
runif(n=5, min=0, max=1)
#+end_src

#+RESULTS: tbl-example-data
|  0.607781215803698 | 
|  0.157157169422135 |
|  0.675619817571715 |
| 0.0488600700628012 |
|  0.998780139256269 |

次の関数は、実行される関数です。

#+name: R-mean(x)
#+begin_src R 
mean(x)
#+end_src

C-c C-c押して実行しようとすると、

ブロック "R-mean" の変数 "x" には、既定値を割り当てる必要があります。

R-mean(x)次のように関数を明示的に実行しようとしました:

#+call: R-mean(tbl-example-data)

残念ながら私は得る:

参照 'R-mean' がこのバッファーに見つかりません。

R-meanの値を使用して関数を実行するにはどうすればよいtbl-example-dataですか?

前もって感謝します。

ジェニア


さて、指示に従ってコードを変更しました:

#+NAME: tbl-example-data()
#+BEGIN_SRC R :results value  <-------------------- changed
runif(n=5, min=0, max=1)
#+END_SRC

#+RESULTS: tbl-example-data
|  0.565871287835762 |
|  0.457158328965306 |
| 0.0498181856237352 |
|  0.988381117349491 |
|  0.898329895688221 |



#+NAME: R-mean(x)
#+BEGIN_SRC R :var x=tbl-example-data <-------------- changed
mean(x)
#+END_SRC




#+call: R-mean(x=tbl-example-data)

それは私にこれを返します:

 Reference 'R-mean' not found in this buffer.

何が間違っているのかわかりません。

4

2 に答える 2

0

これを機能させるには、いくつかの小さな変更を加えるだけで済みます。

  1. 最初のコード ブロックのヘッダーに追加:results valueします。

    #+NAME: tbl-example-data()
    #+BEGIN_SRC R :results value
    runif(n=5, min=0, max=1)
    #+END_SRC
    
    #+RESULTS: tbl-example-data
    ...
    
  2. 2 番目のコード ブロックのヘッダーに追加:var x=tbl-example-dataします。

    #+NAME: R-mean(x)
    #+BEGIN_SRC R :var x=tbl-example-data
    mean(x)
    #+END_SRC
    

これらの変更を行うと、最終結果を取得するために説明した両方の方法が機能します。次の値を介して 2 番目のコード ブロックを評価しC-c C-cます。

#+RESULTS: R-mean
: 0.49763968242332357

R-meanを介して関数を呼び出すと、#+CALL: R-mean(tbl-example-data)以下が生成されます。

#+RESULTS:
: 0.49763968242332357

ソース

于 2014-08-12T15:23:29.197 に答える