Объединить элементы в функции, которые возвращают список - PullRequest
0 голосов
/ 29 октября 2019

Я создаю пакет, в котором есть функция, которая возвращает список из нескольких имен (weight_, height_, bmi_), каждое из которых повторяется с суффиксом числа от 0 до 50. Например, функция возвращает список "weight_0"..."weight_50","height_0" ... "height_50", "bmi_0" ... "bmi_50".

Как я могу вложить в свою функцию другую функцию, которая создает эти новые имена без необходимости перечислять их все из списка

myfunction <- local(function() {
return(c("weight_0", "height_0", "bmi_0"
  ))
})

Ответы [ 2 ]

2 голосов
/ 29 октября 2019

Вы также можете попробовать outer, т.е.

as.vector(outer(outs, 0:50, paste, sep = '_'))
1 голос
/ 29 октября 2019

Вы можете сделать это, используя следующий код

outs = c("weight", "height", "bmi")
unlist(lapply(outs,function(x) paste0(x,"_",0:50)))  

Здесь мы вставляем каждый элемент в outs в числа от 0 до 50. Это создает список с вектором для каждого из элементов вouts, который мы затем выводим на один вектор.

Альтернатива (может быть быстрее):

paste0(rep(outs,each=51),"_",rep(0:50))
...