使用 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)
我创建了一个名为 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)