2017-07-14 5 views
0

完全に機能するRスクリプトを用意しました。 Rscriptから実行すると、ユーザー入力を受け入れることはありません。 ユーザー入力はいくつかのreadlineステートメントです。入力を促すcat文は意図したとおりに動作します。私は何かを逃したか? macOSの端末から 'Rscript scriptfile.R'を実行します。Rスクリプトとユーザープロンプト

+2

これは役立つかもしれません:https://stackoverflow.com/questions/3935288/how-to-include-interactive-input-スクリプト内でコマンドラインから実行する – meenaparam

+0

コードのサンプルを提供できますか? –

答えて

0

meenaparamが提案した投稿に記載されているように、readlineをreadLinesに変更することで動作するように管理しました。この方法の欠点は、スクリプトがバッチモードでのみ動作し、Rstudioで実行するとハングすることです。インタラクティブモードとバッチモードの両方で動作するキーボード入力をキャプチャする一般的な方法を知っているとよいでしょう。

0

typeline()関数を作成して入力行を読み込み、次のコマンドに使用することができます。それはあなたの入力テキストを待ちますどちらかあなたはRstudio中または端末でコードを実行します。

typeline <- function(msg="Enter text: ") { 
    if (interactive()) { 
    txt <- readline(msg) 
    } else { 
    cat(msg); 
    txt <- readLines("stdin",n=1); 
    } 
    return(txt) 
} 

txt=typeline("your message: ") 
print(txt) 
関連する問題