SORU
5 Ocak 2013, CUMARTESİ


Geçen komut satırı R CMD TOPLU argümanlar

R bir komut dosyası çalıştırmak için terminalden R CMD BATCH my_script.R kullanıyorum. Bu komut bir değişken geçmek istiyorum noktada artık öyleyim ama bazı konularda çalışmaya başlama yaşıyorum. Eğer yaparsam R CMD BATCH my_script.R blabla blabla çıktı dosyası, bir argüman R komut yürütülmekte olan mevcut yorumlanan ziyade olur.

Ben denedim Rscript my_script.R blabla gibi aktarmak blabla düzgün bir argüman, ama o zaman anlamıyorum my_script.Rout çıktı dosyası anlıyorum R CMD BATCH (istiyorum .Rout dosya). Süre edebilirim yeniden çıkış arayan Rscript bir dosya benim seçimim, ben değil de R giriş komutları dahil dosya yolu R CMD BATCH yok .Rout dosya.

Yani, ideal olarak, ben sonra bir şekilde geçirmek için bağımsız değişkenleri için R script olma yürütülen yoluyla R CMD BATCH yöntem olsa mutlu olacağını bir yaklaşım kullanarak Rscript varsa için bir yol üretmek bir karşılaştırılabilir .Rout dosya.

CEVAP
5 Ocak 2013, CUMARTESİ


Benim izlenimim R CMD BATCH bir kalıntı biraz. Her durumda, daha yeni ** 20 çalıştırılabilir (tüm platformlarda mevcuttur), commandArgs() ile birlikte komut satırı argümanları işlem oldukça kolay hale getirir.

Örnek olarak, burada küçük bir senaryo ... "myScript.R" arayın:

## myScript.R
args <- commandArgs(trailingOnly = TRUE)
rnorm(n=as.numeric(args[1]), mean=as.numeric(args[2]))

Ve burada komut satırından çağrılırken gibi görünüyor

> Rscript myScript.R 5 100
[1]  98.46435 100.04626  99.44937  98.52910 100.78853

Düzenleme:

O önerebilirim, ama ... kullanarak bir kombinasyonu source() sink(), sen-ebil almak Rscript üretmek .Rout dosya gibi üretilen R CMD BATCH. Bir şekilde R -- script küçük bir çağrı oluşturmak olacaktırDoğrudan Rscript ile arama RscriptEcho.R --. Bu gibi görünebilir:

## RscriptEcho.R
args <- commandArgs(TRUE)
srcFile <- args[1]
outFile <- paste0(make.names(date()), ".Rout")
args <- args[-1]

sink(outFile, split = TRUE)
source(srcFile, echo = TRUE)

Gerçek komut dosyası çalıştırmak için, o zaman yaparsın:

Rscript RscriptEcho.R myScript.R 5 100
[1]  98.46435 100.04626  99.44937  98.52910 100.78853

sağlanan bağımsız değişkenler ile myScript.R yürütme ve benzersiz .Rout adlı aralanmış giriş, çıkış ve mesajları batacak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google

    Google

    18 EYLÜL 2005
  • RawBrahs

    RawBrahs

    28 Aralık 2010
  • TheDigiCraft

    TheDigiCraft

    25 NİSAN 2011