首页 > 解决方案 > 如何在不退出 R 的情况下从终端执行 R 单行程序?

问题描述

这个问题及其答案展示了如何从终端打开 R,评估您想要的表达式,然后退出 R,所有这些都在一行中。最干净的答案是打开你的终端,然后R --slave -e 'EXPR'在 EXPR 是你的表达式的地方运行(例如R --slave -e '1+1')。

我的问题是:如何在不退出 R 的情况下完成所有这些操作?也就是说,我想在终端的一行中输入 R 并计算我想要的表达式。“明显”的答案喜欢R '1+1'R 1+1不工作,返回错误ARGUMENT '1+1' __ignored__,以及 Bash 滥用,例如R; 1+1拒绝评估第二个表达式,直到 R 关闭。

标签: rbashcommand-line

解决方案


使用函数可以在使用参数后自动重启 R:

r() {

   # First execute commands when given
   if [ $# -gt 0 ]; then
      R --slave -e "$*"
   fi

   # Start R 
   R --slave

}    

测试后您可以将此功能添加到.bashrc.
我调用该函数r,但请确保r您的系统尚未使用或保留它。您可以使用, of
调用该函数。 使用时请注意引号。如果没有引号,shell 将尝试扩展特殊字符,并查找文件“1*2”。空格会更糟,会用很多文件名替换。r 1+1r 1 + 1r "1*2"
"1*2"r 1 * 2*


推荐阅读