迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

向 R CMD BATCH 和 Rscript 传递命令行参数

作者:迹忆客 最近更新:2023/03/21 浏览次数:

当使用命令行运行 R 脚本文件时,我们可能希望传递参数并将输出保存在文件中。本文使用 R CMD BATCH 命令和 Rscript 前端演示了这些技术。

我们将从两种方法共有的一些细节开始。

使用 commandArgs() 函数检索 R 中的参数

应使用 commandArgs() 函数检索在命令行上传递的参数。我们将使用参数 trailingOnly=TRUE

该函数返回一个字符向量。

使用 R CMD BATCH 命令重定向 R 中的输出

R CMD BATCH 命令将输出重定向到 .Rout 文件。该文件包含输入命令、结果和错误消息。

使用 Rscript 前端,我们必须使用适当的 shell/终端命令来重定向输出。对于几个终端,它是 > 文件名

我们可以在文件开头使用 options(echo=TRUE) 重定向输入。错误消息不会被重定向。

将输出重定向到文件时必须小心。如果文件不存在,则会创建该文件,否则将被覆盖。

在 R 中创建脚本并运行命令

要查看每种方法的工作原理,请执行以下操作。

  • 使用给定的 R 代码创建一个文件,并将其以扩展名 .R 保存在目录中以执行 R 命令。
  • 在包含脚本文件的目录中打开 shell。
  • 将给定的文件名替换为文件名后运行相应的命令。
  • 在这些示例脚本中,第一个参数是 hobby,第二个参数是 years

将命令行参数传递给 R 中的 R CMD BATCH 命令

语法如下。

R CMD BATCH options "--args userargument1 userargument2" script_filename.R

参数不能包含空格。确切的引用将取决于使用的 shell。

--vanilla 选项结合了几个 R 选项。

R 文件的示例代码:

# Create 5 values in a sequence.
x = seq(from=0, to=20, by=5)
print(x)

# Get the arguments as a character vector.
myargs = commandArgs(trailingOnly=TRUE)
myargs

# The first argument is the text for hobby.
hobby = myargs[1]
hobby

# The second argument is the number of years of practice.
years = as.numeric(myargs[2])
years

命令:

R CMD BATCH --vanilla "--args Golf 8" script_filename.R

在输入文件的同一目录中创建一个与输入文件同名、扩展名为 .Rout 的输出文件。

将命令行参数传递给 R 中的 Rscript

Rscript 是 R 的脚本前端。

参数可能包含空格。这样的参数需要用引号引起来。

语法如下。

Rscript script_filename.R 'user argument 1' userargument2 > rscript_output_file_name.txt

R 文件的示例代码:

# To print the command and its result in the output.
options(echo=TRUE)

# five random values from the standard normal distribution
x = rnorm(5)
print(x)

# Get the arguments as a character vector.
myargs = commandArgs(trailingOnly=TRUE)
myargs

# The first argument is the text for hobby.
hobby = myargs[1]
hobby

# The second argument is the number of years of practice.
years = as.numeric(myargs[2])
years

命令:

Rscript script_filename.R 'Playing Guitar' 3 > rscript_output_file_name.txt

输出文件被创建。它有输入和输出,但没有错误消息。

参考和帮助

请参阅手册的附录 B,调用 R:R 简介

此外,请参阅 R 的 commandArgs() 函数和 Rscript 工具的文档。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

R 中具有多个条件的函数向量化

发布时间:2023/03/21 浏览次数:64 分类:编程语言

一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更

在 R 中读取 xlsx 文件

发布时间:2023/03/21 浏览次数:66 分类:编程语言

在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。

清理 R 的环境

发布时间:2023/03/21 浏览次数:178 分类:编程语言

在本教程中,你将学习如何在 R 中编写一个函数,在不需要重新启动 R 的情况下清除环境。

在 R 中注释掉多行

发布时间:2023/03/21 浏览次数:63 分类:编程语言

在本文中,你将学习如何在 R 中注释出多行,而不必在每一行的开头手动写一个#字符来注释。

在 R 中清除内存

发布时间:2023/03/21 浏览次数:197 分类:编程语言

在本教程中,你将学习如何清除 R 系统占用的内存,而不必重新启动它或重新启动它运行的计算机。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便