Я не разработчик, и я не могу выразить, что мне нужно в простых словах. Он связан с такими вещами, как среда, область охвата, приложение и, возможно, указатели и ссылки.R задает переменную, равную функции возврата. Повторно оценивайте переменную снова каждый раз, когда она называется
Должно быть ясно, с кодом:
a<-c(1,2)
b<-length(a)
a<-c(1,2,3)
b
[1] 2
Я хочу б вернуться 3.
Что я изменить во второй строке? Можно ли это сделать без определения новых пользовательских функций и использования внешних пакетов?
Ошибка при попытке Eval, переуступать, < < - до сих пор
Удивительно. Какой лучший источник информации (например, книга), где я могу больше узнать об этом (за исключением, очевидно, просто привязки к поиску в Google). Существуют ли какие-либо «синонимы» этой привязки на других языках программирования или связанных с ними темах? Я также хотел бы использовать что-то подобное в сценариях оболочки - это также называется привязкой в bash ?. – stuckNlazy
Хм. Не уверен. Основная идея, однако, заключается в том, что за кулисами, набирая 'b', запускается функция' length (a) 'каждый раз, когда она оценивается. Лично мне было бы гораздо удобнее просто определить простую функцию 'b <- function() length (a)', а затем выполнить 'b()' (а не 'b'), чтобы получить длину' a'. Таким образом, вы уклоняетесь от какой-либо мутной магии, которая действительно происходит за кулисами, с тем, что даже «? MakeActiveBinding» описывает как «экспериментальный интерфейс». Просто набрав дополнительный '()', вы можете оставаться в более распространенном мире простых определений функций и вызовов функций. –
@ JoshO'Brien - я бы добавил это к ответу, а не оставлял его здесь в комментариях. Все, что вы сказали, кажется мне очень мудрым. – thelatemail