MS DOS のように、R コマンド ラインで現在の時刻を表示する方法はあるのでしょうか。
Prompt $T $P$G
すべてのプロンプト ラインにタイム レコーダーを含めます。何かのようなもの
options(prompt=paste(format(Sys.time(), "%H:%M:%S"),"> "))
しますが、設定された時点で修正されます。自動更新する方法がわかりません。
チェイスはoptions("prompt"=...)
、これに使用できる正しい方法を示しています。しかし、彼のソリューションは、私たちが望んでいるものではない定数時間表現を追加します。
関数のドキュメントにtaskCallbackManager
は残りがあります:
R> h <- taskCallbackManager()
R> h$add(function(expr, value, ok, visible) {
+ options("prompt"=format(Sys.time(), "%H:%M:%S> "));
+ return(TRUE) },
+ name = "simpleHandler")
[1] "simpleHandler"
07:25:42> a <- 2
07:25:48>
各コマンドの完了後に評価されるコールバックを登録します。それはトリックを行います。より高度なドキュメントは、R 開発者サイトのこのドキュメントにあります。
コールバックに基づく他のメソッドは、最上位のコマンドが実行されない限り、プロンプトを更新しません。したがって、コンソールでReturnキーを押しても、変更は作成されません。これがRの標準的なコールバック処理の性質です。
パッケージをインストールすると、次のようtcltk2
に変更するタスクスケジューラを設定できます。option()
library(tcltk2)
tclTaskSchedule(1000, {options(prompt=paste(Sys.time(),"> "))}, id = "ticktock", redo = TRUE)
出来上がり、MSDOSプロンプトのようなもの。
NB:インスピレーションはこの答えから来ました。
注1:待機時間(この場合は1000)は、秒ではなくミリ秒数を指します。1秒未満の解像度が何らかの形で役立つ場合は、下向きに調整できます。
別のコールバック ソリューションを次に示します。
updatePrompt <- function(...) {options(prompt=paste(Sys.time(),"> ")); return(TRUE)}
addTaskCallback(updatePrompt)
これは Dirk の方法と同じように機能しますが、構文は私にとっては少し単純です。
コマンドで表示されるデフォルトの文字を変更できますoptions()
。次のようなことを試してみてください。
options(prompt = paste(Sys.time(), ">"))
?options
設定できる項目の完全なリストについては、ヘルプ ページを参照してください。知っておくととても便利です!
これがすべての R セッションで実行したいことであると仮定すると、それを に移動することを検討してください.Rprofile
。プログラミングの幸福のいくつかの他の良いナゲットは、このトピックでこれまでに見つけることができます.
これを行うためのネイティブR関数はわかりませんが、Rにはシステム時刻コマンドを備えた他の言語とのインターフェイスがあることは知っています。多分これはオプションですか?
ティエリーは言及system.time()
しました、そしてあなたがそれを何のために必要とするかにもproc.time()
よりますが、これらのどちらもあなたに現在の時間を与えません。