2010-12-29 25 views
16

私は初心者です。私はパラメータ付きの関数を含むRファイルを持っています。 私は次の二つの別々の操作を実行したいとD」:スクリプトと関数の実行とデバッグR

  1. 実行機能
  2. ステップを実行ステップとデバッグによってそれが

Rファイル

でシンプルな機能を持っていると仮定
"exampleSum"<- 
function(x,y){ 
x<-x+1 
return(x+y) 
} 

私が尋ねたことを実行するRコマンドは何か教えてください。

+0

'?debug'と'?browser'のヘルプページをよく熟読してください。 –

答えて

1

まず、関数をRのワークスペースにロードする必要があります(Rにコピー/貼り付けする必要があります)。その後、exampleSum(x = 1, y = 1)を使用して実行することができます。 RコンソールにexampleSumと入力して、そこにあることを確認できます。 source()を使用してスクリプトファイルを実行することもできます。使用例はsource("d:/R/my_script.R")です。

私はあなたが少なくともAn Introduction to Rを読むことによって非常に恩恵を受けると思います。 Rの初心者には非常に基本的なことを説明するための書籍がたくさんあります。同等の情報は、上記のAI2Rとインターネット上に浮遊している無料の資料で入手できます。 R helpのリストを検索することもできます。

25

debug(<functionName>)に電話をかけて、機能を確認する必要があります。次にこの関数を呼び出すと、いわゆるブラウザ環境が自動的に開き、関数の内容が一覧表示されます。 Returnキーを押すか、nコマンド(次へ)を押して、1つの手順を実行します。 1つのステップは、実行前にリストされる1つのブロック(通常は1行)です。機能を終了するには、c(続行)を押します。ブラウザモードでは、ls()str()class()、...などを使用してオブジェクトを検査できます。あなたの例では、次のようになります。

> exampleSum <- function(x, y) { 
+ x <- x+1 
+ return(x+y) 
+ } 

> debug(exampleSum)    # set debug flag 
> exampleSum(1, 2)    # run function in browser mode 
debugging in: exampleSum(1, 2) 
debug: { 
    x <- x + 1 
    return(x + y) 
} 
Browse[2]> n     # next step 
debug: x <- x + 1 
Browse[2]> ls()     # show objects 
[1] "x" "y" 
Browse[2]> x     # show x 
[1] 1 
Browse[2]> c     # run function to end 
exiting from: exampleSum(1, 2) 
[1] 4 

> undebug(exampleSum)   # remove debug flag 

undebug(<functionName>)への最後の呼び出しは、それが正常にそれを呼び出して、次回に実行されるような機能からデバッグフラグを削除します。

+8

'debugonce'は、ワンタイムチェックだけが必要な場合にも役立ちます。 – Marek

+3

次の100行を実行したいのですが? – qed

関連する問題