1
我是新来R的超出了我的代码如下。我有一个简单的范围问题。范围问题。访问对象if语句
我认为,任何局部变量来创建如我的if语句只有声明中的范围是什么?我仍然可以访问if语句之外的Buy.Signal。这怎么样?
我的代码
library(Quandl)
library(TTR)
library(mail)
RunProgram <- function() {
Buy.Signal <- EMAFind()
}
EMAFind <- function() {
Quandl.auth("TOKEN")
mydata <- Quandl("BCHARTS/BITSTAMPUSD")
mydata <- mydata[1:30, ]
mydata <- mydata[order(mydata$Date), ]
EMA.Short <- EMA(x = mydata$Close, 11)
EMA.Long <- EMA(x = mydata$Close, 21)
if (tail(EMA.Short, 1) > tail(EMA.Long, 1)) {
Buy.Signal = TRUE
} else {
Buy.Signal = FALSE
}
print (Buy.Signal) #<- WORKS!
}
为什么是一个很好的链接的环境?在任何其他情况下(例如当声明一个函数时)范围应用,而不是if语句?像这样的R有更多的情况吗? – uncool
是的,范围(用于与'<-'操作初始化变量)是它已被宣布为环境和环境if'同所有'或'for'声明它们是否属于相同的功能。我将编辑答案使其更加清晰。 – RDGuida
@uncool Techically讲,R使用词法/静态作用域代替动态作用域。你可以在这里找到一个视频可能给你R上的工作空间,环境,确定范围和功能定义的一些更深入的了解:https://www.youtube.com/watch?v=WCu1Xw4h_n8 –