使用source()时如何传递命令行参数

时间:2017-03-13 21:44:27

标签: r

我在使用RGui(64位)的Windows中使用r 我使用source命令执行.r文件。

 source('do_something.r')

几乎没有问题:

  1. 如何在命令行上传递参数(在gui中)
  2. 示例:我想打印值10

    do_something.r内容:仅限于以下行 ARG1

    获取以下错误:

    > source('do_something.r') 10
    Error: unexpected numeric constant in "source('do_something.r') 10"
    

    我该如何解决?什么应该是传递参数的正确语法?我四处搜索并没有什么真正清楚(只有我理解的是需要编写函数等...哎哟我不是一个程序员,我是DBA :))。我是r的新手。

    1. 我发现调用“Source('do_something.r'”来调用脚本真的很无聊。有没有更好的方法来做到这一点(不涉及在Windows控制面板中播放等,ia命令行人: ))?

1 个答案:

答案 0 :(得分:0)

确实没有"命令行的概念"对于R解析器。如果它在" do_something.r"中找到一个函数调用,它将执行一个完整的函数调用。在继续执行可能跟随正确分隔符的任何表达式之前的文件,分号。在源代码完成之前,解析器不会将尾随表达式传递给求值程序,因此不会"参见"任何后面的表达式。你有两个选择:

要从RGui控制台执行此操作,您需要执行以下操作:

 val <- 10; source("do_something.r")  # set value first, then `source`

使用&#34;真实&#34;命令行(不是来自RGui),试试这个(假设do_something.r中的代码将访问名为val的变量):

Rscript do_something.r -e 'val <- 10'

有关详细信息和示例,请参阅?Rscript

相关问题