Я пытаюсь понять различные подводные камни при использовании assign () и get ().
Один пример, в котором get () будет по-разному оценивать одни и те же объекты, показан ниже.
Для начала я назначаю строку 'This is: ALPHABET' для элементов names.foo
names.foo <- letters
values.foo <- LETTERS
for (i in 1:length(names.foo)){
assign(names.foo[i], paste("This is: ", values.foo[i]))
}
И когда я запускаю get ('names.foo'), я получаю исходный вектор, как и ожидалось
get('names.foo')
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
Но когда я запускаю get (names.foo), ту же команду, что и выше, но без кавычек, я получаю то, что кажется значением, присвоенным первому элементу вектора names.foo в цикле for.
get(names.foo)
[1] "This is: A"
Означает ли это, что первый элемент, который был назначен в цикле for, также имеет имя names.foo? Что именно get () делает по-разному в 2 случаях?