Вопрос: используя применить с назначением в R


Рассмотрим следующий пример:

Vars <- c("car","bike","lorry")
Dat <- c(10,20,22)

for (i in 1:length(Vars)){
  assign(Vars[i],Dat[i])
}

Здесь я хотел бы сгенерировать три переменные в рабочей области, названной в соответствии с записями в Vars и значения в Dat, На данный момент я использую цикл, но я пытаюсь удалить цикл с помощью apply, как бы лучший способ сделать это?


4


источник


Ответы:


Это отличный пример того, когда следует использовать for вместо apply,
  Лучшее решение - оставить его как есть.

если вы действительно хотите использовать *ply цикл, использование mapply

 mapply(assign, Vars, Dat, MoreArgs=list(envir=parent.frame()))

6



Вы также можете использовать attach например:

attach(as.list(setNames(Dat,Vars)))

2