2016-05-12 71 views
0

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

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)) 

我们可以使用lapply与Y的值相同的testList $ a和testList $ B运行testFunc?

我想这电话:

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

但我总是得到someDataFrame的长度作为输出。我错过了一些明显的东西。

+0

为什么不你把你的'y'设置在函数中,只使用'x'作为参数?即'testfunc < - function(x,y = ...){...}'? – Sotos

+0

@Sotos:它发布的代码已经完成了这项工作。但是,我认为图沙尔想要返回length(x)和nrow(y)两者都是 – vasanthcullen

+0

是的,我认为这没有多大意义... – Sotos

回答

0

你的函数改为

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

默认情况下,一个R函数返回最后一个评估值

0

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

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

相关问题