我不知道如果您将赋值放在括号中,该赋值的值将在控制台中打印出来。见下文;这种行为的原因是什么?
a <- 1
b = 2
assign("c", 3)
(a <- 1)
#> [1] 1
(b = 2)
#> [1] 2
(assign("c", 3))
#> [1] 3
由 reprex 包于 2023 年 3 月 1 日创建(v2.0.1)
这是关于括号和大括号的解释:https://stat.ethz.ch/R-manual/R-devel/library/base/html/Paren.html
描述
左括号 ( 和左大括号 { 是 R 中的原始函数。
实际上,( 在语义上等价于恒等函数(x) x,而 { 稍微有趣一些,请参阅示例。
使用方法
(...)
{ ... }
价值
对于 (,评估参数的结果。它具有可见性设置, 因此,如果在顶层使用,将自动打印。
对于 {,最后一个表达式的计算结果。这有 上次评估的可见性。
f <- get("(")
e <- expression(3 + 2 * 4)
identical(f(e), e)
#> [1] TRUE
do <- get("{")
do(x <- 3, y <- 2*x-3, 6-x-y); x; y
#> [1] 0
#> [1] 3
#> [1] 3
## note the differences
(2+3)
#> [1] 5
{2+3; 4+5}
#> [1] 9
(invisible(2+3))
#> [1] 5
{invisible(2+3)}
这是设计使然。 在文档中找到它并不容易,但某处有一个解释,
(something_with_output)
调用“打印”命令。
FWIW 我发现在使用代码包含
return(invisible(stuff))
的闭包时它很有用。