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

使用source()时如何传递命令行参数,r,R,我在windows中使用r,使用RGui(64位) 我使用source命令执行一个.r文件 source('do_something.r') 有几个问题: > source('do_something.r') 10 Error: unexpected numeric constant in "source('do_something.r') 10" 如何在命令行上传递参数(在gui中) 示例:我想打印值10 内容:仅在第行下方 arg1 获取以下错误: > source('do

我在windows中使用r,使用RGui(64位) 我使用source命令执行一个.r文件

 source('do_something.r')
有几个问题:

> source('do_something.r') 10
Error: unexpected numeric constant in "source('do_something.r') 10"
  • 如何在命令行上传递参数(在gui中)
  • 示例:我想打印值10

    内容:仅在第行下方 arg1

    获取以下错误:

    > source('do_something.r') 10
    Error: unexpected numeric constant in "source('do_something.r') 10"
    
    我怎样才能解决这个问题?传递参数的正确语法应该是什么?我四处搜索,并没有什么真正清楚的(我唯一理解的是需要编写函数等…哎哟,我不是一个程序员,我是一个DBA:)。我是r的新手

  • 我发现调用“Source('do_something.r')来调用脚本真的很无聊。有没有更好的方法来实现这一点(不涉及在windows控制面板中播放等,我是一个命令行人员:)

  • 对于R解析器,实际上没有“命令行”的概念。如果在“do_something.r”文件中找到一个函数调用,它将执行一个完整的函数调用,然后再转到任何可能遵循正确分隔符(分号)的表达式。在源代码完成之前,解析器不会将尾部表达式传递给计算器,因此不会“看到”后面的任何表达式。你有两个选择:

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

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

    有关更多详细信息和示例,请参见
    ?Rscript

    您不能将参数传递给源代码,
    source(“script.R”)
    只在当前R会话中执行script.R文件中的代码,因此您可以执行例如
    x=10;source(“scriptUsingVariableX.R”)
    。无论如何,如果您喜欢命令行,您可以在窗口中使用
    Rscript.exe script.R
    执行脚本,并在script.R内部使用函数
    commandArgs()