什么是高阶函数等效于这个嵌套的sapply()?

问题描述 投票:0回答:1

当然必须有一个更好的方法来迭代矢量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中的高阶函数等价?谢谢

r higher-order-functions
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.