1

非常に複雑なデータをプロットする非常に長いスクリプトRがあります。私は自分が何をしているのかを視覚的に把握するためにプロットを使用するだけですが、プロットなしで結果を計算でき、明らかに何もプロットしないと物事がはるかに速くなります。ただし、場合によっては、デバッグを継続するためにプログラムが何を実行するかを視覚化する必要があります。

このプロットの「オンまたはオフ」スイッチを実現するために、私はこの戦略に従っています。

#toplotスクリプトのプロット機能に関連するコマンドがある行ごとに、関連する各行の最後に特定のコメント付きタグがあります。次に、正規表現置換の力を使用して、次のコマンドでこれらの行をコメント化/コメント解除します。

サンプルコード:

a <- c(1:10)
b <- a/sin(a)
png('sin.png') #toplot
plot(b)        #toplot
dev.off()      #toplot
print(b)

'タグ付き'行にコメントするには:

  :%s/.\+#toplot/###commline###\0/g

私はこれを手に入れます:

a <- c(1:10)
b <- a/sin(a)
###commline###    png('sin.png') #toplot
###commline###    plot(b)        #toplot
###commline###    dev.off()      #toplot
print(b)

コメントを外すには:

  :%s/###commline###//g

私はこれを手に入れます:

a <- c(1:10)
b <- a/sin(a)
png('sin.png') #toplot
plot(b)        #toplot
dev.off()      #toplot
print(b)

私はコンピューター科学者ではないので、この種の操作を実行するためのより優れた、よりエレガントな方法があるかどうかはわかりません。

編集:データをプロットするには、さまざまな種類のデータがプロットデバイスに収まるように、多くの計算と変換を行う必要があることに注意してください。これらの操作を実行するために、履歴を使用して、必要に応じて上下に移動します。

4

2 に答える 2

1

あなたのアプローチは私にはうまく見えます。

プロットに関連するすべての線をキャプチャする正規表現を思い付くことができれば、#toplotマーカーを廃止して、代わりにコメント置換を直接機能させることができます。

置換を再入力するか、履歴を使用するかについては言及していません。私は間違いなくそのためのバッファローカルコマンド(および/またはマッピング)を定義します:

autocmd FileType r command! -buffer Comment %s/.\+#toplot/###commline###\0/g
autocmd FileType r command! -buffer Uncomment %s/###commline###//g

(またはに入れ:commands!ます~/.vim/ftplugin/r_commands.vim。)

ファイルタイプの設定を適切に定義すると'comments'(たとえば、add b:###commline###)、コメントのオン/オフを切り替えるための優れたマッピングを提供する一般的なコメントプラグイン( NERD Commenter'commentstring'など)の1つを使用できる場合もあります。

于 2012-11-28T10:25:01.293 に答える
0

これは問題ありませんが、各プロットコマンドを条件でラップする方が簡単ではありませんか?

于 2012-11-28T10:17:13.510 に答える