我是R.的新手。我的代码如下。我有一个简单的范围问题。
我认为在if语句中创建的任何局部变量在该语句中只有一个范围?我仍然可以在if语句之外访问Buy.Signal。这怎么样?
我的代码
Task.Run
答案 0 :(得分:2)
不,这是C(和C ++)和R关于变量范围的主要区别之一。在R中if
语句后跟{
括号不限制在其中声明的变量的范围。
if(x==1)
{ y<-2} # assigned in .GlobalEnv
else (x==2)
{y <-3} # assigned in .GlobalEnv
y
>2 # or 3 of course
fun <- function(x) {
varfun <- 3 # assigned in the function environment
}
varfun #we are back in the .GlobalEnv
>Error: object varfun not found
中环境的良好链接