Какая функция высшего порядка эквивалентна этому вложенному sapply ()? - PullRequest
0 голосов
/ 25 февраля 2019

Конечно, должен быть лучший способ перебрать элементы вектора b по элементам вектора a?

a <- 1:10
b  <- c("dog", "cat", "badger", "eagle", "horse")

sapply(1:length(a), function(x){
    sapply(1:length(b), function(y){
        cat(a[x], b[y], "\n\n")
    })
})

... дает ...

1 dog 

1 cat 

1 badger 

1 eagle 

1 horse 

2 dog 

2 cat 

2 badger 

2 eagle 

2 horse 

3 dog 

... и так далее.Что такое функция высшего порядка в R?Спасибо

1 Ответ

0 голосов
/ 25 февраля 2019

Это может не дать точного ответа на ваш вопрос, но иногда лучше использовать mapply, а не несколько lapply:

mapply(
  function(x, y) cat(x, y, "\n\n"),
  x = rep(a, times = length(b)),
  y = rep(b, each = length(a)))

...