可执行 .R 文件不是 运行,路径被忽略

Executable .R file not running, path ignored

我正在尝试 helloworld.R 运行。我已授予它可执行权限,并在文件顶部添加了 #!/usr/bin/Rscript。 (我也尝试过 #!/usr/bin/en Rscript)。这是一个比较简单的文件:

#!/usr/bin/Rscript

x <- rnorm(100)
df <- data.frame(x = x)
write.csv(df, "sim_data.csv")

但是,任何 运行 文件的尝试都遇到了以下错误

ARGUMENT '/home/path/to/file/helloworld.R' __ignored__

R version 3.4.3 (2017-11-30) -- "Kite-Eating Tree"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

(...)

令人惊讶的是,将文件重命名为 helloworld.py 让它 运行 就好了(并输出 sim_data.csv 及其预期的内容),但这看起来很老套,所以我想知道是否有是一个更好的解决方案。

错误消息表明它是 R 可执行文件,而不是 运行 的 Rscript 可执行文件。您可以使用终端验证这一点:

R  /home/path/to/file/helloworld.R         # produces above error
Rscript /home/path/to/file/helloworld.R    # should work
/home/path/to/file/helloworld.R            # should work if file is executable

您的 window 管理器或桌面环境很可能有 .R 文件与 R 可执行文件关联,因此当您双击此类文件时会启动 R。如何更改取决于 window 使用的管理器或桌面环境。

你不是 运行ning RScript,你是 运行ning R,所以让 R 告诉你 运行 一个文件:

$  R --help

Usage: R [options] [< infile] [> outfile]
   or: R CMD command [arguments]

Options:
  --args                Skip the rest of the command line
  -f FILE, --file=FILE  Take input from 'FILE'
  -e EXPR               Execute 'EXPR' and exit

所以这样试试:

R -f helloworld.R

问题是,为什么您的 Rscript 可执行文件被窃听并指向 R