2012-05-15 9 views
13

私はUNIXに慣れていて、私は窓でRを使っています。たとえば、私はRセッション(R GUI内)で次のように入力します。私は2羽の状況で、UNIXシェルでこれを達成するにはどうすればよいunix-laymanのためのunixのインタプリタを使ったスクリプトやコマンドを実行しています

# this is a my funny example script 
X <- 1:10 
Y <- 21:30 
plot(X, Y) 
myfun <- function (x){ 
       x1 <- x^0.2 
       return (x1) 
      } 
myfun(X) 

-

(1)直接interpeter を経由して、コマンドラインで(2)スクリプトを作成し、スクリプトを実行しています。

私は平凡な人であると考えてステップを用意してください。

+1

たぶん、あなたはLinux用のRを使用する必要がありますか? –

+0

簡単な質問を申し訳ありませんが、LinuxとUNIX Rの違いは何ですか?私はUnixでRを実行できると信じています – SHRram

+1

何を試しましたか? Rはunixやlinuxにうまくインストールする必要があり、 'R 'でコマンドラインからアクセスできます。また、優れたguisのいくつかを見ることもできます(私は[RStudio](http://www.rstudio.org)をお勧めします)。最後に、スクリプトの実行を簡単に行うことができます。多くの場合、 'R CMD BATCH script.R'を使用しますが、多くの選択肢とオプションがあり、よく書かれています。 – Justin

答えて

25

スクリプトを名前がso.Rの単純なテキストファイルに保存すると仮定すると、プロンプトでRと入力してLinux/Unixで実行できます。一度Rで

source('so.R') 

(これはso.Rファイルを想定しているあなたは、このコマンドを発行するとしているのと同じディレクトリにある)R環境内でスクリプトを実行するために入力します。私はRの内部が、Linuxのコマンドラインからスクリプトを実行したとき、私は表示するプロットを得た

R CMD BATCH so.R 

注:以下のコマンドを使用のLinux/Unixのコマンドラインからスクリプトを実行するには

それは表示されません。私はそれがすぐに表示され、離れて行くと思うので、プロットを表示した後に一時停止させるためにルックアップする必要があるRコマンドがあります。

+4

実際のスクリプティングは 'Rscript'(Rに付属)または古い' r'(パッケージlittlerから)と考えることができます。 'R CMD BATCH'の使用は、Rscriptに代わって推奨されなくなりました。もしあなたがそれを持っていれば、rも素晴らしいです。 –

1

LinuxマシンにSSH接続されているという質問から、あるいは、あなたは通常のラップトップ/ PCにUbuntuをインストールしたとします。

2番目のケースを想定して、端末を開き、sudo apt-get install r-baseと入力します。次に、Rと入力します。あなたの質問を約unixlinuxいうよりR対であるので、次に

X <- 1:10 
Y <- 21:30 
plot(X, Y) 
myfun <- function (x){ 
       x1 <- x^0.2 
       return (x1) 
      } 
myfun(X) 

を入力して、あなたもhttp://unix.stackexchange.comを試してみてください。 LinuxとUNIXの違いについては多くのことが言えますが、おそらく知っておくべきことは、download Ubuntuです。それをディスクに書き込んだ後、CDドライブのディスクでコンピュータを再起動してください。

これが役に立ちます。

+0

すべてのパッケージ名は小文字であるため、_lowercase_ R: 'sudo apt-get install r-base'です。 –

+0

ありがとう@DirkEddelbuettel。一定。 – isomorphismes

1

あなたのプログラムは、単一のデータセット上で動作するように起こっている場合は、簡単な-rが解決策になるかもしれません:

http://code.google.com/p/simple-r/

これは、特にLinuxのコマンドラインの一部として簡単な統計分析のために設計されています。例えば、いくつかのデータをプロットしたい場合、 'r -p data.txt'がそのジョブを行います。相関係数を得るために: 'r cor data.txt'で十分です。

+0

私たちは、実際にはもっと汎用的なlittlerプロジェクトのために、実際には/ usr/bin/rを数年前に掘り下げました。 –

1

以下の例は、シェルスクリプトでRコードを実行する2つの方法を示しています。両方とも の例では、スクリプトが がsource()関数を介して対話型のRセッションにロードされている場合、それらを実行することなく関数を定義します。

最初の例では、他のシェル スクリプトと同じように引数を与えることができますが、追加のRオプションはRに渡されません(Rscriptは引数の1つとしてRに "--args" 。

2番目の例では、追加のRオプションを指定できますが、 引数の1つに "--args"を指定しない限り、 (無害)の警告メッセージが生成されます。特別な要件がない限り、このバージョンは避けるのが最善です。

プロトタイプRscript.r

#!/usr/bin/env Rscript 
# Prototype R script for use at command line in Linux, Mac OS X, UNIX 

# References: 
# Manual "A Introduction to R", available via help.start() from the R Console 
# Appendix "B.1 Invoking R from the command line" in "A Inroduction to R", 

showArguments <- function(argv) { 
    print(argv) 
    0 
} 

if (! interactive()) { 
    # set some error return codes 
    SCRIPT_ERROR <- 10      # see documentation for quit() 
    SCRIPT_ARG_ERROR <- SCRIPT_ERROR + 1 

    # Define ARGV as script path concatenated to script arguments 
    ARGV <- commandArgs(FALSE)   # start with all the arguments given to R 
    scriptPath <- sub("^--file=", "", grep("^--file=", ARGV, value=TRUE)) [[1]] 
    ARGV <- c(scriptPath, commandArgs(TRUE)) 

    if (length(ARGV) < 2) { 
     cat(file=stderr(), sep="", 
      "Usage: ", ARGV[[1]], " [ options ] item ...\n", 
      "  Do something with item\n", 
      "  See script for details\n") 
     quit(save="no", status=SCRIPT_ARG_ERROR) 
    } 
    quit(save="no", status=showArguments(ARGV)) 
} 

プロトタイプshellscript.r

#!/usr/bin/env R --slave --vanilla --quiet -f 
# Prototype R script for use at command line in Linux, Mac OS X, UNIX 

# References: 
# Manual "A Introduction to R", available via help.start() from the R Console 
# Appendix "B.1 Invoking R from the command line" in "A Inroduction to R", 

showArguments <- function(argv) { 
    print(argv) 
    0 
} 

if (! interactive()) { 
    # set some error return codes 
    SCRIPT_ERROR <- 10      # see documentation for quit() 
    SCRIPT_ARG_ERROR <- SCRIPT_ERROR + 1 

    # Define ARGV as the arguments given to this script (after argument “-f”) 
    ARGV <- commandArgs(FALSE)   # start with all the arguments given to R 
    ARGV <- ARGV[(grep("-f", ARGV) [[1]] + 1):length(ARGV)] 
    if (any(grepl("--args", ARGV))) { # remove arguments intended only for R 
     ARGV <- c(ARGV[[1]], commandArgs(TRUE)) 
    } 

    if (length(ARGV) < 2) { 
     cat(file=stderr(), sep="", 
      "Usage: ", ARGV[[1]], " [ R_options ] --args [ options ] item ...\n", 
      "  Do something with item\n", 
      "  See script for details\n") 
     quit(save="no", status=SCRIPT_ARG_ERROR) 
    } 
    quit(save="no", status=showArguments(ARGV)) 
} 
関連する問題