Как получить доступ к функциям из списка в назначить? - PullRequest
1 голос
/ 16 октября 2019

Предположим, что я определил

methods <- list(hurz.default = function (vehicles, mission) {
    vehicles_r <- vehicles
    return(vehicles_r)}, 
  hurz.a = function (vehicles, mission) {
    vehicles_r <- vehicles[1, ]
    return(vehicles_r)})

сейчас, это работает

i <- 1
assign(names(methods[i]), methods[[i]])

, но это не так:

lapply(c(1:length(methods)), function(i) {
        assign(names(methods[i]), methods[[i]])
})

Я не смог найти ответ, используя Hadley . есть идеи?

(Идея пришла от здесь , но я предполагаю, что это что-то другое.)

1 Ответ

1 голос
/ 16 октября 2019

Мы можем указать env

lapply(seq_along(methods), function(i) {
       assign(names(methods)[i], methods[[i]], env = .GlobalEnv)
 })   


hurz.default
#function (vehicles, mission) {
#    vehicles_r <- vehicles
#    return(vehicles_r)}

hurz.a
#function (vehicles, mission) {
#    vehicles_r <- vehicles[1, ]
#    return(vehicles_r)}

С list другой вариант - list2env

list2env(methods, .GlobalEnv)
...