【问题标题】:R can't define variable in local(), Error: unexpected symbol in:, Error: unexpected ')' in ")"R 无法在 local() 中定义变量,错误:意外符号:,错误:“)”中的意外')'
【发布时间】:2018-10-12 01:13:34
【问题描述】:

我正在尝试在 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)}
  )

再次,这里有什么区别?

【问题讨论】:

  • 你需要local( { var1 = 1; print(var1) } )

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


【解决方案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 年 5 月 1 日创建。

【讨论】:

    【解决方案2】:

    查看文档:?`{`。尤其看例子:

    (2+3) 
    
    (2+3
     4+5)
    
    {2+3}
    
    {2+3
     4+5}
    

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多