Мой вопрос следующий. Учитывая следующую функцию:
spam <- function() {
cat("eggs\n")
}
bla <- spam()
Я хочу найти имя объекта, которому функция возвращает свое содержимое. В примере bla <- spam()
это будет bla
. Используя match.call
, я могу найти выполненный звонок:
match.call()
function() {
cat("eggs\n")
}
это, однако, не включает в себя имя объекта, к которому возвращается функция. Я просмотрел список R-help, Google и SO, но не смог найти ничего полезного. Любые предложения, как поступить?
Фон
Из ответов я понимаю, что то, что я хочу, немного на эзотерической стороне. Я бы объяснил, откуда я, это может пролить свет на мои мотивы. Контекст, в котором я работаю, связан с тестированием и, в частности, с тестированием, изменяется ли определенный объект во времени (например, вывод модели).
Обычно пользователь напишет набор кода, который генерирует объект, сохранит его и со временем сравнит сохраненный объект с вновь созданными объектами. Пользователь может сделать это, используя следующую функцию:
spam <- testReferenceChange(expression)
Обычно эта функция считывает ссылку и генерирует новый объект, который пользователь может сравнивать друг с другом. Для восстановления ссылочного файла я хотел использовать точно такой же код. Я делаю это, изменяя глобальные параметры (см. options
и getOption
), recalculate
. Мы запускаем эту функцию в режиме пересчета, новые ссылки сохраняются. А теперь по причине моего вопроса. При сохранении ссылки на файл (используя save()
) я хотел использовать имя объекта, к которому возвращается пользователь, в сочетании с датой, чтобы создать уникальное имя.