Внутри функции, которую вы просили и выполняли:
# what is this doing? why is myVal not in the global environment after this call?
# I see it adds an environment attribute to the variable, but what good is that?
environment(myVal) = globalenv()
Таким образом, вы ничего не сделали с myVal
объектом с именем "abcde", который был в функции. Вместо этого вы создали новую среду с именем «abcede» внутри среды функции. Затем вы выполнили:
assign( "myVal" , myVal , envir = globalenv() )
Он создал переменную с именем «myVal» со значением символьного режима «abcde», полученную из среды локальных функций, и поместил ее в глобальную среду. Теперь у него есть атрибут с именем ".Environment". Тем не менее, остается неясным, каковы ваши цели, поскольку среды предназначены для определения области действия функций . Назначение среды для объекта данных просто странно. Переменные находятся в средах, но не представляется полезной установка окружения для переменной . Поэтому я думаю, что ответ на ваш вопрос: ... что это хорошего? "Должен быть" это не хорошо ".