小编Oh *_* No的帖子

R函数的括号

我正在阅读Hadley Wickham的书"Advanced R"并且遇到了以下代码.

`(` <- function(e1) {
if (is.numeric(e1) && runif(1) < 0.1) {
e1 + 1
} else {
e1
}
}
Run Code Online (Sandbox Code Playgroud)

运行该函数时,我得到了以下输出

> (1)
[1] 1
> (1)
[1] 2
Run Code Online (Sandbox Code Playgroud)

问:为什么(1)运行上述函数而不是((1)?

我也试过以下,

f <- function(e1){if (is.numeric(e1) && runif(1) < 0.1) {
e1 + 1
} else {
e1
}
}

> f(1)
[1] 2
> f1)
Error: unexpected ')' in "f1)"
Run Code Online (Sandbox Code Playgroud)

primitive r function

3
推荐指数
1
解决办法
54
查看次数

R for 循环计数器变量保留在全局环境中

在 R 中,为什么j以下 for 循环中定义的变量在循环执行后仍保留在全局环境/范围中。

for (j in 1:2){
  print(j)
}
Run Code Online (Sandbox Code Playgroud)

执行代码的终端窗口的屏幕截图,您可以在其中看到 for 循环执行前后全局环境中的变量。

在此处输入图片说明

scope for-loop r global-variables local-variables

0
推荐指数
1
解决办法
662
查看次数