Rスクリプトを1行ずつ実行する


8

WindowsでRコンソールからRスクリプトを実行する方法を見つけました。

source("arrrFile.R")

問題は、このコマンドが「サイレント」で実行されることです。コンソールでファイルを入力するのと同じように、コマンドごとにファイルを実行するにはどうすればよいですか?


5
試しましたsource("arrFile.R", echo=TRUE)か?
カラカル2011

(+1)@caracal、どういうわけかその1つのオプションを逃しました:) print興味のない出力がない限り、ソースファイルに入力する必要はありません。
ドミトリチェロフ

回答:


16

Rの組み込みデバッガを使用できます。関数でトリガーする必要があるため、小さなラッパーが必要です。

sourceDebugging<-function(f){
 #Function to inject the code to
 theCode<-function(){}
 #Injection
 parse(text=c('{',readLines(f),'}'))->body(theCode)
 #Triggering debug
 debug(theCode)
 #Lift-off
 theCode()
}
sourceDebugging(<file with code>)

これはデバッグに非常に便利です(各行の後で状態を検査する機会を与えます)は、デフォルトではtheCodeなく、新しい環境でのみ評価されsourceます.GlobalEnv...これは、たとえば、内部で作成された変数が消えない限り、明示的にグローバル化。

オプション2は、キーボードからの書き込みをエミュレートしてEnterキーを押すだけです...しかし、カラカルが指摘したように、これはだけで実現できますsource(<file with code>,echo=TRUE)


(+1)ソースファイルを関数として記述しておくこともお勧めしdebug() browser()ます:)
Dmitrij Celov

1
また、バニラ、ショーはコマンドがR-2.12 --vanilla <yourfile.R行ずつ実行する方法
user4581

1
パラメータも渡す方法はありますか?
gc5 14

関数の定義により、数値が1オフセットされているようです。その周りに賢い方法はありますか?
irritable_phd_syndrom

10

RGui内のスクリプトファイルを開き、Ctrl + Rを押して1行ずつ実行します(ただし、何度も押す必要があります;))。ただし、Rを便利に使用するには、RStudioを使用することをお勧めします。この場合は、Ctrl + Enterで行を実行します。または、スクリプトをオブジェクトprint()(またはcat())に変更することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.