Ленивая оценка в R - это влияет на назначение?

Я читаюэтот основной вопрос на переименование объектов и ответ @Shane на него, указывая мне на ленивую оценку. Теперь мне интересно, еслиassign оценивается тоже лениво. Прямо как здесь:

assign("someNewName",someOldObject)
rm(someOldObject)

Причиной, по которой я задаюсь вопросом об этом, является следующий вариант использования: Предположим, я получил 10K + R объектов, каждый из которых имеет два атрибута, называемыхoriginalName а такжеadditionalName, Теперь я хочу написать функцию, которая может эффективно позволить пользователю переключаться с одного имени на другое без потери этих двух атрибутов. Примерно так ...

РЕДАКТИРОВАТЬ: на основе ввода @ Хэдли я изменил свой код.

switchObjectName <- function(x) {
  n1 <- attributes(x)$originalName
  n2 <- attributes(x)$additionalName
  objName <- deparse(substitute(x))
  if(objName == n1) {
    delayedAssign(n2,x,assign.env=.GlobalEnv)
  } else {
    delayedAssign(n1,x,assign.env=.GlobalEnv)
  }
  rm(list=c(objName),envir=.GlobalEnv)    
}

это работает хорошо, но у меня были некоторые проблемы, чтобы получитьrm утверждение верно. Я пыталсяrm(objName,envir=.GlobalEnv) но не может заставить его работать, хотя objName определенно символ, потому что это результатdeparse(substitute(x).

Ответы на вопрос(1)

Ваш ответ на вопрос