R установить переменную, равную той, которую возвращает функция. Пересматривайте переменную снова каждый раз, когда она вызывается

Я не разработчик, и я не могу выразить то, что мне нужно, простыми словами. Это связано с такими вещами, как окружение, область видимости, вложенность и, возможно, указатели и ссылки.

Это должно быть ясно с кодом:

a<-c(1,2)
b<-length(a)
a<-c(1,2,3)
b
[1] 2

Я хочу, чтобы б 3 вернулся.

Что мне поменять во второй строке? Возможно ли это сделать без определения новых пользовательских функций и использования внешних пакетов?

Не удалось попробовать eval, назначить, << - пока

1 ответ

Я не рекомендую вам использовать его, но makeActiveBinding() будет делать то, что вы просите:

makeActiveBinding("b", function() length(a), .GlobalEnv)
a <- c(1,2)
b
# [1] 2
a <- c(1,2,4)
b
# [1] 3
Другие вопросы по тегам