我有一个R文件(myfile.R)。我想使用shell脚本运行它。我怎样才能做到这一点? 我试过这个:
#! /bin/bash
Rscript myfile.R
但是它给了我这个错误:Rscript:command not found
我也试过这个:
#! /bin/bash
R --not-save-- < myfile.R
它也会出现此错误:R:找不到命令
最好的方法是什么?
答案 0 :(得分:6)
想法是不编写一个shell,而是写一个 R 脚本。这就是Rscript
的用途,我们的littler包提供/usr/bin/r
甚至在此之前。
所以就这样做
#!/usr/bin/Rscript
cat("Hello, world\n")
# rest of your code below
或使用
#!/usr/bin/r
for littler - 我有多个cron工作就是这么做的。
这显然假设您Rscript
中有r
或/usr/bin
。在常规的Debian或Ubuntu盒子上。
答案 1 :(得分:2)
答案 2 :(得分:1)
这适用于Windows上的Cygwin:
#!/cygdrive/c/Progra~1/R/R-3.3.0/bin/x64/Rscript.exe
# dummy example
cat("Hello StackOverflow\n")
答案 3 :(得分:0)
使用命令R
启动R,然后添加您的代码
user@ubuntu:~/RCode/RCode$ R
> source("data_acquisition.R")
> load_libraries()
> df <- acquire_nps()
> head(df)
...
答案 4 :(得分:0)
考虑到您已经在计算机(基于Linux)中安装了R,下面是在sh文件中运行R可以遵循的步骤。
OS:Mac-Os(莫哈韦版本)
R版本:3.6
步骤1 :我已经使用brew在Mac机器上安装了R。
$ brew install r(-这会将最新的R安装到您的计算机中-)
第2步:创建示例sh文件。 (startR.sh)
$ touch startR.sh
第3步:将以下内容复制到您的startR.sh文件中
$ vim startR.sh
(在内容下方粘贴)
#!/bin/sh
Rscript sample.r
echo " r sample run"
exit
(--我用名称sample.R创建了简单的R文件,其中包含以下内容-)
sayHello <-function(){
print('hello') }
(这是简单的hello函数,请根据实际函数随意更改)
注意:请将您的sample.R放在与startR.sh相同的位置
第4步:将权限更改为.sh文件
$ chmod 750 startR.sh
第5步:执行.sh文件
$ sh startR.sh
如果一切正常,它将在输出下方显示。
在启动过程中-警告消息: 1:使用“ C”设置LC_COLLATE失败 2:使用“ C”设置LC_TIME失败 3:使用“ C”设置LC_MESSAGES失败 4:使用“ C”设置LC_MONETARY失败 1“你好” r样品运行