私はa.r
というファイルを持っています、それは755のchmod
を持っています、
sayHello <- function(){
print('hello')
}
sayHello()
コマンドラインでこれを実行するにはどうすればいいですか?
出力を端末に印刷したい場合は、Rscriptを使用するのが最善です。
Rscript a.R
R CMD BATCH a.R
を使用すると、出力を標準出力にリダイレクトして端末に表示する代わりに、a.Routという新しいファイルが作成されます。
R CMD BATCH a.R
# Check the output
cat a.Rout
Rscriptの使用に関して注意すべきもう1つのことは、混乱を招く可能性があるデフォルトではmethods
パッケージをロードしないことです。そのため、メソッドが提供するものに依存しているのであれば、スクリプトに明示的にロードすることをお勧めします。
スクリプトを呼び出すのに./a.R
の方法を本当に使いたい場合は、スクリプトの先頭に適切な#!
を追加することができます。
#!/usr/bin/env Rscript
sayHello <- function(){
print('hello')
}
sayHello()
あなたが* unixシステムを走らせているのであれば、Rへの簡単なコマンドラインパイピングを提供する便利な littler パッケージがあることにも注意します.
これは質問に直接答えません。しかし、誰かが端末からRのonelinerを実行したいので、ここで終わるかもしれません。たとえば、足りないパッケージをインストールして終了したいだけの場合は、このonelinerが非常に便利です。いくつかのパッケージを見逃していることが突然わかったときに、それを頻繁に使います。
R -e 'install.packages(c("package1", "package2"))' # install to default location.
Sudo R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")' # install to location that requires root.
コマンドラインからRスクリプトを実行するもう1つの方法は、次のとおりです。
R < scriptName.R --no-save
または--save
と一緒に。
端末からRスクリプトを実行するには?Rscript
コマンドが必要です。
http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html をチェックしてください - /
例
## 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()
複数のコマンドでknitrとrmarkdownを使用してRmdをコマンドで実行してから、HTMLファイルをRPubsにアップロードする方法
例を示します。2つのライブラリをロードしてRコマンドを実行します。
R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'
R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'
ドキュメンテーションのためだけに。スクリプトをSudo
として実行する必要がある場合があります。
Sudo Rscript path/to/your/file.R
UnixシステムでRscriptを使うもう1つの方法は、 Process Substitution です。
Rscript <(zcat a.r)
# [1] "hello"
これは明らかに受け入れられた答えと同じことをしますが、これはあなたがそれをコマンドラインの力を節約することなくあなたのファイルを操作して実行することを可能にします。
Rscript <(sed s/hello/bye/ a.r)
# [1] "bye"
Rscript -e "Rcode"
と同様に、ファイルに保存せずに実行することもできます。そのため、Rコードを生成するスクリプトと組み合わせて使用することができます。
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