R(システム)のコマンドを使用して.exeプログラム(spi_sl_6.exe)を呼び出そうとしますが、「システム」を使用してプログラムにパラメータを入力することはできません。フォローウィングは私のコマンドとパラメータです:system("D:\\working\spi_sl_6.exe")
Rを使用してexeプログラムと入力パラメータを呼び出す方法は?
私はネット上で長い時間を探しています。しかし、使用しないでください。これを達成する方法を教えてください。前もって感謝します。
R(システム)のコマンドを使用して.exeプログラム(spi_sl_6.exe)を呼び出そうとしますが、「システム」を使用してプログラムにパラメータを入力することはできません。フォローウィングは私のコマンドとパラメータです:system("D:\\working\spi_sl_6.exe")
Rを使用してexeプログラムと入力パラメータを呼び出す方法は?
私はネット上で長い時間を探しています。しかし、使用しないでください。これを達成する方法を教えてください。前もって感謝します。
あなたはsprintf
を使用してコマンドを構築することができます。
cmd_name <- "D:\\working\spi_sl_6.exe"
param1 <- "a"
param2 <- "b"
system2(sprintf("%s %s %s",cmd_name,param1,param2))
か(私は、このオプションを好む)system2
を使用して:
system2(cmd_name, args = c(param1,param2))
本当にありがとうございました。あなたの助言によると、私はコマンドをsystem2 'system2(" D:\\ working \\ SPI \\ test \\ spi_sl_6.exe "、args = c(2,3,6、" D:\\ working \ \ SPI \\ test \\ Kita.cor "、" D:\\ working \\ SPI \\ test \\ restult.txt "))'しかし、exeプログラムは動作しません。メッセージは、「出力ファイルを開けませんでした」というメッセージです。私の限定されたRの経験では、私は理由を知らない。 – Liangzhong
これは http://drought.unl.edu/MonitoringTools/DownloadableSPIProgram.aspxから標準化された降水インデックスのソフトウェアを使用しています。
これは
・ファーストは、ソフトウェアをダウンロード(!ではなく、警告なし)のWindowsを使用して作業溶液を得ているようだとの例では、ヘルプファイル基本-SPI-の3ページから
# Create directory to download software
mydir <- "C:\\Users\\david\\spi"
dir.create(mydir)
url <- "http://drought.unl.edu/archive/Programs/SPI"
download.file(file.path(url, "spi_sl_6.exe"), file.path(mydir, "spi_sl_6.exe"), mode="wb")
# Download example files
download.file(file.path(url, "SPI_samplefiles.zip"), file.path(mydir, "SPI_samplefiles.zip"))
# extract one example file, and write out
temp <- unzip(file.path(mydir, "SPI_samplefiles.zip"), "wymo.cor")
dat <- read.table(temp)
# Use this file as an example input
write.table(dat, file.path(mydir,"wymo.cor"), col.names = FALSE, row.names = FALSE)
をファイル上記のリンクでプログラムinformation.pdfは、コマンドライン・コードの形式spi 3 6 12 <infile.dat >outfile.dat
でなければならない、しかし、 いずれ下記加工された(非Rでだけからコマンドライン)、およびパラメータを渡す方法の種々の反復。
C:\Users\david\spi\spi_sl_6 3 <C:\Users\david\spi\wymo.cor >C:\Users\david\spi\out.dat
cd C:\Users\david\spi && spi_sl_6 3 <wymo.cor >out.dat
しかし、Running .exe file with multiple parameters in c# から受け入れ答えを使用して動作するようです。それはあなたがshell
(あなたがexeファイルを保存した場所へのパスを変更する必要があります)
shell("cd C:\\Users\\david\\spi && (echo 2 && echo 3 && echo 6 && echo wymo.cor && echo out2.dat) | spi_sl_6", intern=TRUE)
でこれをラップすることができますので、Rでこれを実行するために、再度、コマンドラインから
cd C:\Users\david\spi && (echo 2 && echo 3 && echo 6 && echo wymo.cor && echo out1.dat) | spi_sl_6
ですout1.dat
とout2.dat
は同じである必要があります。
これは警告メッセージをスローし、私はecho
(Rではなく、コマンドラインから)からだと思いますが、出力ファイルが生成されます。
は、すべてのエコーがそうあなたがする必要があるすべては、入力時パラメータである、sligtly呼び出しを自動化することができたとします。
timez <- c(2, 3, 6)
stime <- paste("echo", timez, collapse =" && ")
infile <- "wymo.cor"
outfile <- "out3.dat"
spiCall <- paste("cd", mydir, "&& (" , stime, "&& echo", infile, "&& echo", outfile, ") | spi_sl_6")
shell(spiCall)
お返事ありがとうございます。あなたは私の問題を完全に解決しました。 – Liangzhong
私は完全にはわかりませんが、Pですが、大歓迎です。 Windowsコマンドラインに精通している人にとって、改善のための提案を提供することが容易になることを願って、答えに完全な実例を追加しました。 – user20650
「入力パラメータ」とは、コマンドライン引数を意味しますか、プログラムを開いたら、プログラムに入力するものですか?最初の状況は扱いやすいです。プログラムが修正されない限り、2番目の...は不可能かもしれません。 – Dason
これはまだRの質問には見えません。コマンドラインからexeプログラムにパラメータを送ることができますか?(今すぐRを使って回避する)そうでない場合、すべてのプログラムがこれを容易にするわけではないので、あなたはできると確信しています。 @ Liangzhong; – user20650
; exeプログラムにコマンドラインでパラメータを入力する機能があることを確認する必要があります。これを行うことができれば、R – user20650