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

时间:2018-01-09 10:51:01

标签: r rscript

我正试着让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及其预期内容),但这看起来很糟糕,所以我想知道是否有更好的解决方案。< / p>

2 个答案:

答案 0 :(得分:2)

错误消息表明它是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

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

答案 1 :(得分:0)

您未运行RScript,正在运行R,因此请R告诉您运行文件:

 public function SaveData()
{
$val =$this->input->post('val');

for ($i = 0; $i < count($val); ++$i ) {

$value = $val[$i];
$save= array(
'service' =>$value
);
$this->model->SaveData($save);

所以请尝试这种方式:

$  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