【问题标题】:Using lapply for multiple lists in a function对函数中的多个列表使用 lapply
【发布时间】:2016-08-25 16:24:34
【问题描述】:

我有 2 个矩阵 A 和 B 的列表:

n<-10
generate<-function (n){
matrix(runif(10*10),ncol = 10) 
}
A<-lapply(1:n, generate)
B<-lapply(1:n, generate)

我正在尝试使用 lapply 通过具有两个输入的函数运行它。我的函数是我创建的函数ABC():

ABC(x,y)

我现在尝试使用 lapply 运行列表 A for x 和 B for y:

l<-lapply(A,B, ABC(x,y))

这不起作用,因为它将 B 识别为函数而不是应与 y 关联的列表。我需要使用sapplymapply吗?如果需要怎么办?

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 当你尝试mapply时发生了什么?
  • 您的函数generaten 作为输入,但它不会在函数中的任何位置使用n
  • @Dirty Sock Sniffer 在使用mapply 时得到以下Error in get(as.character(FUN), mode = "function", envir = envir) : object 'b' of mode 'function' was not found。 @bouncyball 这不是我的问题,它是 lapply 位。
  • @adaodante mapply(x = A, y = B, FUN = function(x, y) ABC(x, y))
  • @bouncyball 谢谢mapply(x = A, y = B, FUN = function(x, y) ABC(x, y)) 再次工作谢谢。

标签: r list lapply sapply mapply


【解决方案1】:

mapply 是你要找的吗?

n<-10
generate<-function (n){
  matrix(runif(10*10),ncol = 10) 
}
A<-lapply(1:n, generate)
B<-lapply(1:n, generate)


mapply(generate, c( 1:n,1:n))

【讨论】:

  • 这和你想的不一样,它只会调用generate 20次。
  • 你是对的,我想我没有得到这个问题。 @adaodante 得到了答案。
猜你喜欢
  • 2018-06-19
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 2020-04-04
  • 1970-01-01
  • 2020-06-03
相关资源
最近更新 更多