2013-10-24 88 views
0

我以前lapply與下面的參數運行的函數100倍:無法找到函數在工作區

lapply(1:100, myfunc) 

,但我得到這個錯誤信息:

error in match.fun(FUN) : object 'myfunc' not found 

我用list.files()檢查,如果函數在工作目錄中,它在那裏。所以我不知道我爲什麼得到這個消息。

+0

'list.files'顯示你的操作系統中有什麼。你希望函數在'R'中。 –

+0

當我運行「lapply」時,該函數應該在工作目錄中。是對的嗎? – SaZa

+0

不能;)看看@喬蘭的答案。他告訴你如何去做。 –

回答

4

這聽起來有些模糊,就像你期待R的行爲像Matlab一樣(基於我對Matlab的朦朧記憶)。

僅僅因爲包含函數的文件在你的工作目錄中並不意味着R是否知道它。您需要source()包含此功能的文件,然後使用ls()驗證您的工作區中是否存在該功能。

因此,例如,如果包含該函數的文件是"foo/bar/myfile.R"然後我會運行:

source("foo/bar/myfile.R") 

和驗證功能是我工作區運行ls()

+1

我不會做matlab連接。 –

+3

...或者八度?沒有理由認爲OP是一個笨蛋。 :) –

+0

@joran;非常感謝。我使用源代碼,它工作。 – SaZa