我正在阅读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) 在 R 中,为什么j以下 for 循环中定义的变量在循环执行后仍保留在全局环境/范围中。
for (j in 1:2){
print(j)
}
Run Code Online (Sandbox Code Playgroud)
执行代码的终端窗口的屏幕截图,您可以在其中看到 for 循环执行前后全局环境中的变量。