我正试着让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>
答案 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
?