755 adında a.r
bir chmod
dosyam var,
sayHello <- function(){
print('hello')
}
sayHello()
Bunu komut satırı üzerinden nasıl çalıştırabilirim?
#!/usr/bin/env Rscript
755 adında a.r
bir chmod
dosyam var,
sayHello <- function(){
print('hello')
}
sayHello()
Bunu komut satırı üzerinden nasıl çalıştırabilirim?
#!/usr/bin/env Rscript
Yanıtlar:
Çıktının terminale yazdırılmasını istiyorsanız, Rscript kullanmak en iyisidir
Rscript a.R
Not kullanırken o R CMD BATCH a.R
yerine standart dışı çıkış yönlendirme ve a.Rout denilen terminali yeni bir dosya üzerinde görüntüleme oluşturulmuş olacağını.
R CMD BATCH a.R
# Check the output
cat a.Rout
Rscript kullanımı hakkında dikkat edilmesi gereken bir diğer şey, methods
paketi varsayılan olarak yüklememesi ve karışıklığa neden olabilmesidir. Bu nedenle, yöntemlerin sağladığı herhangi bir şeye güveniyorsanız, bunu komut dosyanızda açıkça yüklemek isteyeceksiniz.
./a.R
Senaryoyu çağırmanın yolunu gerçekten kullanmak istiyorsanız senaryonun #!
üstüne uygun bir şey ekleyebilirsiniz .
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
Ayrıca, bir * unix sistemi üzerinde çalışıyorsanız, R'ye kolay komut satırı borulaması sağlayan kullanışlı littler paketi olduğunu da not edeceğim. Daha fazla ayrıntı bu soruda bulunabilir .
R CMD BATCH
korkunç olduğunu söylemek . Bundan başka bir şey ...
R CMD INSTALL -l ~/R/lib-dev
Bu soruya doğrudan cevap vermez. Ama birisi buraya gelebilir, çünkü terminalden bir R oneliner çalıştırmak istiyorlar. Örneğin, sadece bazı eksik paketleri yüklemek ve çıkmak istiyorsanız, bu oneliner çok uygun olabilir. Aniden bazı paketleri kaçırdığımı öğrendiğimde çok kullanıyorum ve bunları istediğim yere kurmak istiyorum.
Varsayılan konuma yüklemek için:
R -e 'install.packages(c("package1", "package2"))'
root
Ayrıcalıklar gerektiren bir konuma yüklemek için :
R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")'
Rscript -e "getwd()"
için terminalde de kullanabilirsiniz . Rscript sadece komut çıkışını yazdırır, tam R başlatma mesajını yazdırmaz.
r -e "cat(getwd(),'\n')"
Littler yüklüyse de kullanabilirsiniz . Gelen bu cevap Dirk Eddelbuettel littler ve Rscript arasındaki farkı açıklar.
R -e 'install.packages("package", repos="http://cran.us.r-project.org")'
R -r 'options(warn=2); install...'
yükleme başarısız olması durumunda sıfır olmayan bir hata kodu yürütme durdurmak ve almak için. Aksi takdirde, install.packages
hatalar yalnızca uyarı niteliğindedir.
Komut satırından bir R komut dosyası çalıştırmanın başka bir yolu:
R < scriptName.R --no-save
veya ile --save
.
Ayrıca bkz . Komut satırında (terminal) R komut dosyalarını kullanmanın en iyi yolu nedir? .
İhtiyacın var ?Rscript
Terminalden bir R komut dosyası çalıştırmak komuta .
Check out http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html
Misal
## example #! script for a Unix-alike
#! /path/to/Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
res <- try(install.packages(args))
if(inherits(res, "try-error")) q(status=1) else q()
Rmd komutunda knitr ve rmarkdown komutunu birden çok komutla çalıştırma ve ardından RPub'lara HTML dosyası yükleme
İşte bir örnek: iki kitaplık yükleyin ve bir R komutu çalıştırın
R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'
R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'
R -e 'markdown::rpubsUpload("normalDev","NormalDevconJuly.html")'
* Unix sistemleri için Rscript'i kullanmanın başka bir yolu da İşlem Değiştirme'dir .
Rscript <(zcat a.r)
# [1] "hello"
Açıkçası kabul edilen cevapla aynı şeyi yapar, ancak bu, dosyanızı komut satırının gücünü kaydetmeden değiştirmenize ve çalıştırmanıza olanak tanır, örn:
Rscript <(sed s/hello/bye/ a.r)
# [1] "bye"
Buna benzer olarak Rscript -e "Rcode"
, bir dosyaya kaydetmeden çalışmasına izin verir. Bu nedenle, R kodu üreten komut dosyalarıyla birlikte kullanılabilir, örneğin:
Rscript <(echo "head(iris,2)")
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
Sadece dokümantasyon için, bazen komut dosyasını şu şekilde çalıştırmanız gerekir sudo
:
sudo Rscript path/to/your/file.R