【发布时间】:2015-04-12 10:57:19
【问题描述】:
我正在用 R 编码。
我认为我在 R 方面取得了不错的进展。我创建了一个脚本来读取命令行参数(有 1 个单个参数,它是数据文件的名称),从 .csv 读取数据,执行回归并打印一些数据。
在途中的某个地方,我修改了一些东西,一切都消失了。随后,我拆除了整个脚本,现在我有了最基本的脚本,它的行为很奇怪。这是我现在得到的:
#NOTE: To run the script use the following command in terminal R CMD
#BATCH scriptname arguments #store the current directory
initial.dir<-getwd()
#set the output
sink("PROGOUT.out")
#Get commandline arguments
args<-commandArgs(trailingOnly=TRUE)
print(args)
"HELLO WORLD"
我希望这个程序创建一个文件 PROGOUT.out,其中包含命令行参数和短语 HELLO WORLD。
在我运行的命令提示符下,
$ R CMD BATCH R_ScriptV3.R test1 test2 test3 test4
程序会创建两个文件,“test1”和“PROGOUT.out”
这是PROGOUT.out的内容:
字符(0)
[1]“你好世界”
proc.time() 用户系统经过 0.201 0.026 0.219
这是test1的内容:
R 版本 3.1.2 (2014-10-31) -- “南瓜头盔” 版权所有 (C) 2014 统计计算平台 R 基金会:x86_64-apple-darwin10.8.0 (64-bit) R 是免费软件并且绝对不提供任何保证。欢迎您在某些条件下重新分发它。键入“license()”或“licence()”以获取分发详细信息。自然语言支持但在英语语言环境中运行 R 是一个与许多贡献者合作的项目。输入“contributors()”以获取更多信息,输入“citation()”以了解如何在出版物中引用 R 或 R 包。输入 'demo()' 获得一些演示,输入 'help()' 获得在线帮助,或者输入 'help.start()' 获得 HTML 浏览器界面的帮助。输入 'q()' 退出 R。[之前保存的工作区已恢复] >
注意:要运行脚本,请在终端中使用以下命令
R CMD BATCH scriptname arguments >> #store 当前目录
initial.dir
设置输出
sink("PROGOUT.out")
获取命令行参数
args
打印(参数)
“你好世界”>
那么... 1) 为什么程序会创建文件'test1'?当我开始编写脚本时,这并没有发生,但它似乎命令提示符中的第一个参数变成了一个包含一些标题信息和程序副本的文件?,2)PROGOUT.out 确实包含“HELLO WORLD”语句,但它确实不包含任何其他参数....为什么不包含这些参数以及如何将这些参数读入我的脚本中。
我可以发誓这一切以前都很好。有任何想法吗?
【问题讨论】:
-
为了关闭使用
sink(fname)打开的文件,您需要发出命令sink()。函数本身总是返回 NULL,因此没有必要将其结果分配给任何 R 符号。
标签: r