Интересно, есть ли простой способ создать список переменных, используя цикл for, и указать его значение?
for(i in 1:3)
{
noquote(paste("a",i,sep=""))=i
}
В приведенной выше коде, я пытаюсь создать a1
, a2
, a3
, задающие значения 1, 2, 3. Однако, R выдает сообщение об ошибке. Спасибо за вашу помощь.
names
параметр, а затем либо просто использовать его,attach
либо преобразовать его в среду внутриlist2env
иeval
внутри него. Без петель, разборов и прочих некрасивых вещей.list2env
это относительно новая функция. И все же он будет генерировать переменные в некоторой среде, когда ОП хочет получить переменные в верхней среде. Таким образом, уродство все еще остается :)Ответы:
Вы ищете
assign()
.дает
а также
Обновить
Я согласен, что использование циклов (очень часто) является плохим стилем кодирования R (см. Обсуждение выше). Использование
list2env()
(спасибо @mbq за упоминание), это еще одно решение вопроса @Han Lin Shang:источник
Если значения в векторе, цикл не нужен:
Как примечание, это причина, почему я люблю Р.
источник
library(fortunes)
fortune(106)
parse
после прочтения страниц справки R. Я согласен, что иногда это перебор, например, вformula
управлении, но я нашел это очень полезным. Обратите внимание, что я не могу переосмыслить вопрос, предложенный в судьбе, так как я не задавал его.