与此嵌套的sapply()等效的高阶函数是什么?

时间:2019-02-25 11:34:11

标签: r higher-order-functions

肯定有一种比矢量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 :(得分:0)

这可能无法完全回答您的问题,但有时最好使用mapply而不是嵌套多个lapply

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