1

プログラムをバッチで実行したいのですが、プログラムでユーザーの入力を待つ必要があります。

これは私が持っているものです:

library('XLConnect')
FolderPath<-"C:/Documents/Testing/"
load(paste('C:/Documents/Testing/Program.ml',sep=''));Run()

このコードは Test.R という名前で、必要な機能を実行するコンパイル済みファイルを呼び出します。この演習ではいくつかの入力が必要なので、ユーザーにいくつかの日付を入力してもらいたいと思いました。

プログラムは次のようにする必要があります。

What are the years for this simulation?

次に、ユーザーは次のように入力します。

>2001, 2002, 2003, 2004

プログラムはこのベクトルを変数に保存します。y を呼び出しましょう。
次に、コンパイルされた関数をロードするときに、y を使用します。
問題は、この R コードを cmd バッチで実行することです。

4

3 に答える 3

1

R ではなく、バッチ ファイルでユーザー入力を簡単に処理できます。たとえばlauncher.bat、次のようにバッチ ファイルを作成します。

ECHO I am Rscript launcher
set /p years= What are the years for this simulation?
cd R_SCRIPT_PATH
Rscript youscript.R %years%

ユーザーは好きなだけ年を書くことができ、それは変数の年になります。次に、スクリプトでこの変数を解析して、有効な年のリストとして設定します。

于 2013-11-06T17:21:01.493 に答える
1

Yukio、次の例のように機能readline(ドキュメントはこちら) を試してください。ユーザーは 2 つの年をコンマで区切って入力します。

> years = readline('What are the years for this simulation? ')
What are the years for this simulation? 2001, 2002
> years = as.numeric(unlist(strsplit(years, ",")))
> years
[1] 2001 2002

ところで、あなたの英語は素晴らしいです!

于 2013-11-06T16:59:26.063 に答える