2016-05-12 68 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)

相關問題