Я не думаю, что eval
или assign
здесь вообще необходимы; их использование обычно (хотя и не всегда) указывает на то, что вы делаете что-то нелегко или, по крайней мере, не в духе.
> test <- "bye"
> L <- list(1:10) ## c() unnecessary here too
> names(L) <- test
> L
$bye
[1] 1 2 3 4 5 6 7 8 9 10
Если вы действительно хотите сделать это в одном выражении, вы можете сделать:
L <- setNames(list(1:10), test)
или
L <- structure(list(1:10), .Names=test)