web-dev-qa-db-ja.com

unix-laymanのunixでインタプリタを使用してrスクリプトまたはコマンドを実行する

私はWindowsでRを使用しているunixとソファーの素人です。たとえば、Rセッションで(R guiで)次のように入力します。

# 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)

2つの状況で、Unixシェルでこれをどのように達成できますか-

(1)インタピータを介してコマンドラインで直接(2)スクリプトを作成してスクリプトを実行。

私がunixの素人であることを考慮して、ステップを提供してください。

13
SHRram

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

  source('so.R')

r環境内でスクリプトを実行します(これは、so.Rファイルがこのコマンドを発行したときと同じディレクトリにあると想定しています)。

Linux/Unixコマンドラインからスクリプトを実行するには、次のコマンドを使用します。

  R CMD BATCH so.R

R内でスクリプトを実行したときに表示されるプロットを取得しましたが、Linuxコマンドラインからは表示されないことに注意してください。私はそれがすぐに表示されてから消えるのではないかと思います。そのため、プロットが表示された後、Rコマンドを停止して一時停止させる必要があります。

25
Levon

プログラムが単一のデータセットで機能する場合は、simple-rが解決策になる可能性があります。

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

これは、特にLinuxコマンドラインの一部として単純な統計分析用に設計されています。たとえば、データをプロットしたい場合は、 'r -p data.txt'が適切です。相関係数を取得するには、「r cor data.txt」で十分です。

1
Tom

以下の例は、シェルスクリプトでRコードを実行する2つの方法を示しています。スクリプトがsource()関数を介してインタラクティブRセッションにロードされている場合、どちらの例でも、関数を実行せずに定義します。

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

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

prototype-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))
}

prototype-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))
}
1
Ian E. Gorman

LinuxマシンにSSHで接続したのではないでしょうか。または、通常のラップトップ/ PCなどにUbuntuをインストールした。

それが2番目のケースであると仮定します。ターミナルを開いてSudo apt-get install r-baseと入力します。次に、Rと入力します。次に入力します

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

あなたの質問はunixではなくlinuxRに関するものなので、 http://unix.stackexchange.com 。 linuxとunixの違いについては多くのことを言う必要がありますが、おそらく知っておくべきことは次のとおりです: Ubuntuをダウンロード 、ディスクに書き込みます、次にディスクをCDドライブに挿入してコンピュータを再起動します。

お役に立てれば。

1
isomorphismes