Я пытаюсь использовать функцию insertSource
(новая в R 2.12), чтобы обновить функцию, в которую я внес изменения.
Однако, когда я использую функцию таким образом:
insertSource('filename.R', package = 'mypackage')
Я получаю ошибку:
Error in get(this, envir = envp) : object '.cacheOnAssign' not found
К сожалению, я не могу придумать простой воспроизводимый пример - если это будет полезно, пожалуйста, предложите, как я могу это сделать - но я обнаружил, что следующий код работает:
system("echo 'nls <- function(nls) return(nls)' > foo.R")
insertSource('foo.R', package = stats)
Одно из различий между пакетом stats и mypackage заключается в расположении библиотеки (mypackage находится в '~ / lib / R /'. ( update ): ошибка по-прежнему возникает, когда .libPaths('~/lib/R')
находится в .Rprofile
и Google .CacheOnAssign возвращает только 6 совпадений, два из которых на этот вопрос.
Вопросы:
- что означает ошибка?
- Как я могу использовать
insertSource
?
Debugging
с использованием options(error = recover)
options(error = recover)
Error in get(this, envir = envp) : object '.cacheOnAssign' not found
Called from: get(this, envir = envp)
Browse[1]> where
where 1: get(this, envir = envp)
where 2: insertSource("filename.R", "mypackage")
Browse[1]> ls()
[1] "q"
Browse[1]> n
>
не уверен, что делать с этими результатами и куда идти дальше
с использованием options(error = browser)
дает больше информации, которую я поместил в текстовый файл