gpt4 book ai didi

r - 在命令行(终端)上使用 R 脚本的最佳方式是什么?

转载 作者:行者123 更新时间:2023-11-29 08:38:40 24 4
gpt4 key购买 nike

使用 R 脚本从命令行进行简单绘图非常方便。但是,从 bash 脚本运行 R 一点也不方便。理想的情况可能是这样的

#!/path/to/R
...

#!/usr/bin/env R
...

但我没能完成其中任何一个。

另一种选择是将脚本完全保留在 R 中,例如script.R,并使用 R --file=script.R 或类似的方式调用它。但是,有时脚本会依赖于晦涩的命令行开关,此时部分代码存在于脚本之外。示例:通过本地 .Rprofile 从 bash 将内容潜入 R,然后所需的开关就是 --vanilla 暗示的所有内容,除了 --no-init-file

另一个选项是一个 bash 脚本,用于存储 R 标志并可以轻松执行,然后调用 R 脚本。问题在于,这意味着单个程序被拆分为两个文件,现在必须保持同步,一起传输到新机器等。

我目前最鄙视的选项是将 R 嵌入到 bash 脚本中:

#!/bin/bash
... # usage message to catch bad input without invoking R
... # any bash pre-processing of input
... # etc
R --random-flags <<RSCRIPT
# R code goes here
RSCRIPT

一切都在一个文件中。它是可执行的并且很容易处理参数。问题是,像这样结合 bash 和 R 几乎消除了任何 IDE 在一个或另一个上不失败的可能性,这让我的心很痛。

有没有我想念的更好的方法?

最佳答案

script.r的内容:

#!/usr/bin/env Rscript

args = commandArgs(trailingOnly = TRUE)
message(sprintf("Hello %s", args[1L]))

第一行是shebang line .最佳做法是使用 /usr/bin/env Rscript 而不是硬编码 R 安装路径。否则,您的脚本可能会在其他计算机上崩溃。

接下来,使其可执行(在命令行上):

chmod +x script.r

从命令行调用:

./script.r world
# Hello world

关于r - 在命令行(终端)上使用 R 脚本的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/750786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com