范围问题。访问if语句之外的对象

时间:2015-06-21 09:15:58

标签: r

我是R.的新手。我的代码如下。我有一个简单的范围问题。

我认为在if语句中创建的任何局部变量在该语句中只有一个范围?我仍然可以在if语句之外访问Buy.Signal。这怎么样?

我的代码

Task.Run

1 个答案:

答案 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

以下是R http://adv-r.had.co.nz/Environments.html

中环境的良好链接