Я понимаю, что интерфейс OpenCPU - RESTful. Тем не менее, я хотел бы сохранять данные между вызовами функций, если это возможно.
Я наивно создал следующий пакет:
vals <- c()
fnInit <- function() {
vals <<- c('a','b','c')
}
но я получил ошибку: не могу изменить значение заблокированной привязки для «vals», когда я вызвал функцию fnInit. Я понимаю, почему это происходит.
Затем я попытался:
fnBoth <- local({
vals <- c('a','b','c')
function(which) {
if (which == 0) {
vals
} else if (which == 1) {
vals <<- c(vals,'d')
vals
}
}
})
но каждый раз, когда я отправляю POST в функцию fnBoth, с которой = 1, я получаю один и тот же ответ: [1] "a" "b" "c" "d"
Если я снова вызову функцию, я получу тот же ответ. Таким образом, может показаться, что значение vals каждый раз сбрасывается.
Мой вопрос: можно ли сохранять данные между вызовами функций? Вышеупомянутые попытки не претендуют на то, чтобы быть исчерпывающими - может быть, есть другой метод? Или я должен просто сохранить значение на диск?
Спасибо