使用 Lapply 应用带有两个参数的函数

Applying a function with two arguments using Lapply

我创建了一个名为 testFunc 的测试函数,它需要两个参数。

testFunc<-function(x,y){
  length(x)
  nrow(y)
}

现在我想使用 lappy 将此函数应用于列表,同时保持 y 参数不变。

考虑一个测试列表,testList:

testList<-list(a=c(1,2,3,4,5,5,6),b=c(1,2,4,5,6,7,8))

我们可以在具有相同 y 值的 testList$a 和 testList$b 上使用 lapply 到 运行 testFunc 吗?

我试过这个电话:

lapply(X = testList, FUN = testFunc, someDataFrame)

但我总是将 someDataFrame 的长度作为输出。我是否遗漏了一些明显的东西。

将您的函数更改为

testFunc<-function(x,y){
  return(c(length(x), nrow(y)))
}

默认情况下,R函数returns最后计算的值

最简单的方法,使用命名变量:

lapply(X = testList, FUN=testFunc, y=someDataFrame)