r - 如何在不退出 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 关闭。
解决方案
使用函数可以在使用参数后自动重启 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+1
r 1 + 1
r "1*2"
"1*2"
r 1 * 2
*
推荐阅读
- excel - Excel - 查看 IP 地址是否包含在子网列表中的公式
- javascript - 我如何将 express-fileupload 与 fetch 一起使用?
- listview - Xamarin Forms - 刷新 ListView 时连接到远程数据库
- python - 奇怪的行为,为什么不能在函数中使用最外层的变量?
- reactjs - 对象中的打字稿类型值
- php - 将数据从表单发布到控制器时出现 MethodNotAllowedHttpException
- javascript - 如何验证 javascript 使用的 REST API(因为代码是公开的)
- python - Python翻译功能
- java - 多处理 kafka 消息
- spring - Spring AMQP:如何知道消息生成 AmqpRejectAndDontRequeueException