我试图在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)}
)
同样,这里的区别是什么?
答案 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}