0
我正在進行一系列嵌套函數調用,並看到一些我不能用簡單示例重現的異常行爲,所以原始代碼如下所示:R函數打印變量但報告對象<variable>找不到
source("DataManager.R")
x <- getQuotesFromService('JNJ', '2016-04-01', '2016-05-10')
,並得到下面的輸出:
getQuotesFromService parameters:
sDate= 2016-04-01 , eDate= 2016-05-10 , service= finance.yahoo
getQuotesFromService USING FINANCE.YAHOO SERVICE:
sDate= 2016-04-01 , eDate= 2016-05-10 , service= finance.yahoo
1 getDateRanges params: startDate= 2016-04-01 | endDate= 2016-05-10
後跟此錯誤消息:
Error in cat("1 getDateRanges params: startDate=", startDate, "| endDate=", :
object 'startDate' not found
這是從這個代碼生成:
getQuotesFromService <- function(ticker, sDate, eDate, service="finance.yahoo") {
library(XML)
cat("getQuotesFromService parameters:\n",
"sDate=", sDate, ", eDate=", eDate, ", service=", service, "\n")
quotes <- NULL
if(service == "finance.yahoo") {
source('YahooQuotes.R')
cat("getQuotesFromService USING FINANCE.YAHOO SERVICE:\n",
"sDate=", sDate, ", eDate=", eDate, ", service=", service, "\n")
dateRanges <- getDateRanges(sDate, eDate, 360, 10)
quotes <- getMultipleYqlQuotes(dateRanges)
}
return(quotes)
}
它調用這個函數:
getDateRanges <- function(startDate, endDate,
daysInInterval=360,
maxAllowableYears=10) {
cat('1 getDateRanges params: startDate=', startDate,
'| endDate=', endDate, '\n')
## MORE STUFF HERE, BUT GETS EXECUTED AFTER POINT OF ERROR ##
}
令我百思不解的是,的startDate得到的呼叫getDateRanges打印出來貓,但R告訴我,對象'startDate'未找到。
任何想法爲什麼我看到這種行爲?