2013-10-24 69 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