R无法在local()中定义变量,错误:在:中出现意外符号,错误:意外')'in“)”

时间:2018-05-02 01:26:58

标签: r for-loop environment-variables local curly-braces

我试图在R中的local()中运行一些代码,所以我的环境中没有一堆讨厌的变量,但我只是意识到我无法在local()中定义一个新的变量。例如:

local(
     var1 = 1
     print(var1)
  )

给了我以下错误:

Error: unexpected symbol in:
       "  var1 = 1
        print"
      > )
       Error: unexpected ')' in ")"
      > 

但是如果我在local()中的forloop中创建一个变量那么它就可以了;运行以下代码:

local(
           for (v in 1:3) {
             var1 = v
             print(var1)
           }
        )

为什么会这样?

更新:以下代码有效(如果我在大括号

中包含local()中的所有内容)
local(
     {var1 = 1
     print(var1)}
  )

同样,这里的区别是什么?

2 个答案:

答案 0 :(得分:1)

local有一个主要参数expr。你的第一个代码被写成它将被解释为两个参数。例如,请参阅下面的示例,无论定义var1的位置如何,您的第一个代码逻辑都可以工作。用大括号包装会创建一个表达式对象,该对象成为local的单个参数。 for循环做了很多相同的事情。

local(
  var1 = 1
  print(1)
)
#> Error: <text>:4:3: unexpected symbol
#> 3:   var1 = 1
#> 4:   print
#>      ^

reprex package(v0.2.0)创建于2018-05-01。

答案 1 :(得分:1)

查看以下文档:?`{`。特别注意例子:

(2+3) 

(2+3
 4+5)

{2+3}

{2+3
 4+5}