独立 R 程序的基本结构以及如何调用它

第一个独立的 R 脚本

程序 R(Windows 下的 R.exe)不执行独立的 R 脚本,而是由名为 RscriptRscript.exe)的程序执行,默认情况下,该程序包含在 R 中。

为了暗示这一事实,独立的 R 脚本以一个名为 Shebang line 的特殊行开始,该行包含以下内容:#!/usr/bin/env Rscript。在 Windows 下,需要一个额外的措施,稍后会详细说明。

以下简单的独立 R 脚本将文件名“hist.png”下的直方图保存为它作为输入接收的数字:

#!/usr/bin/env Rscript

# User message (\n = end the line)
cat("Input numbers, separated by space:\n")
# Read user input as one string (n=1 -> Read only one line)
input <- readLines(file('stdin'), n=1)
# Split the string at each space (\\s == any space)
input <- strsplit(input, "\\s")[[1]]
# convert the obtained vector of strings to numbers
input <- as.numeric(input)

# Open the output picture file
png("hist.png",width=400, height=300)
# Draw the histogram
hist(input)
# Close the output file
dev.off()

你可以看到独立 R 脚本的几个关键元素。在第一行,你看到了 Shebang 线。接下来,cat("....\n") 用于向用户打印消息。每当要将控制台上的用户输入指定为数据源时,请使用 file("stdin")。在多个数据读取功能(scanread.tableread.csv,…)中,可以使用它来代替文件名。用户输入从字符串转换为数字后,绘图开始。在那里,可以看出,用于写入文件的绘图命令必须包含在两个命令中。在这种情况下,这些是 png(.)dev.off()。第一个函数取决于所需的输出文件格式(其他常见的选择是 jpeg(.)pdf(.))。第二个功能 dev.off() 始终是必需的。它将绘图写入文件并结束绘图过程。

准备独立的 R 脚本

Linux 的/苹果机

必须首先使独立脚本的文件可执行。通过右键单击文件,打开菜单中的属性并选中权限选项卡中的可执行文件复选框,可以实现此操作。或者,命令

chmod +x PATH/TO/SCRIPT/SCRIPTNAME.R

可以在终端中调用。

Windows

对于每个独立脚本,必须使用以下内容编写批处理文件:

"C:\Program Files\R-XXXXXXX\bin\Rscript.exe" "%~dp0\XXXXXXX.R" %*

批处理文件是普通文本文件,但除了*.txt 扩展名外,它具有*.bat 扩展名。使用文本编辑器(如 notepad(不是 Word)或类似文件)创建它,并在保存对话框中将文件名放入引号 FILENAME.bat)。要编辑现有批处理文件,请右键单击该文件并选择编辑

你需要调整上面显示的代码 XXX...

  • 插入 R 安装所在的正确文件夹
  • 插入正确的脚本名称并将其放在与此批处理文件相同的目录中。

代码中元素的说明:第一部分 C:\...\Rscript.exe 告诉 Windows 在哪里可以找到 Rscript.exe 程序。第二部分 %~dp0\XXX.R 告诉 Rscript 执行你编写的 R 脚本,该脚本与批处理文件位于同一文件夹中(%~dp0 代表批处理文件夹)。最后,%*将你提供给批处理文件的任何命令行参数转发给 R 脚本。

如果双击批处理文件,则执行 R 脚本。如果在批处理文件上拖动文件,则相应的文件名将作为命令行参数提供给 R 脚本。