Следующий пример показывает, что после его добавления изменяется только x
, значение a
не изменяется. Делает attach()
сделать копию объекта x
? Есть ли способ мутировать x
, сохраненный attach()
?Почему изменения в прикрепленном объекте не влияют?
R> x=list(a=1,b=2)
R> attach(x)
R> search()
[1] ".GlobalEnv" "x" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
R> x$a=2
R> search()
[1] ".GlobalEnv" "x" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
R> a
[1] 1
R>
От '? Attach', *" База данных на самом деле не прикреплена. Вместо этого создается новая среда в пути поиска и элементах списка (включая столбцы кадра данных) или объекты в файле сохранения или среда будет скопирована в новую среду.Если вы используете << или назначить для присоединения к вложенной базе данных, вы изменяете только прикрепленную копию, а не исходный объект. (Обычное назначение поместит модифицированную версию в рабочее пространство пользователя: см. примеры.) По этой причине приложение может привести к путанице. *. – nrussell
@nrussell, пост как ответ? –
Я думаю, что вопрос, вероятно, можно просто удалить; вся информация указана в документации. Если вы не согласны, напишите ответ. – nrussell