2013-02-28 37 views
0

我第一次使用R来学习如何编写分类算法。我主要学习O'reilly的书籍黑客机器学习在R中,如果不定义函数,function()是什么意思?

在R,R文档,电子书和我的关于书写功能的书中有很多信息。然而,本书中有一些代码片断使用了这个词的功能,似乎并不符合我对功能使用的理解。例如:

all.spam <- sapply(spam.docs, function(p) get.msg(paste(spam.path,p,sep=""))) 

其中get.msg是一个用户定义的函数,是sapply从基地R,且p不在他们的代码任何地方所定义。这本书没有解释,我也尝试搜索并询问我公司的其他R用户无济于事。

任何见解?提前致谢。顺便说一句,在RStudio中,以这种方式使用时,单词功能是亮蓝色的。

+1

你定义一个函数,即需要一个'参数。你只是没有把它分配给一个名字,所以你不能再使用它。 – Marius 2013-02-28 23:57:26

+1

我对R不太了解,但对我来说,这看起来像[lambda /匿名函数](http://en.wikipedia.org/wiki/Anonymous_function#R)。这可以帮助你进行研究:) – 2013-02-28 23:57:35

+4

'sapply'来自'base'软件包!我建议你学习一些R教程来获取基础知识。 – agstudy 2013-03-01 00:02:08

回答

6

在R,定义使用相同的语法匿名和命名功能,让你的例子:

all.spam <- sapply(spam.docs, function(p) get.msg(paste(spam.path,p,sep=""))) 

说相当于:

my_spam_func <- function(p) { 
    get.msg(paste(spam.path, p, sep="")) 
} 

all.spam2 <- sapply(spam.docs, my_spam_func) 
相关问题