我第一次使用R来学习如何编写分类算法。我主要是从O'reilly的书中学习黑客机器学习。
R,R文档,电子书以及关于编写函数的书中有大量信息。但是,本书中有一些代码片段使用单词function,其方式似乎不符合我对函数使用的理解。例如:
all.spam <- sapply(spam.docs, function(p) get.msg(paste(spam.path,p,sep="")))
其中get.msg是用户定义的函数,sapply来自基类R
,而p未在其代码中的任何位置定义。书中没有任何解释,我也尝试搜索并询问我公司的其他R用户无济于事。
有什么见解?提前致谢。顺便说一句,在RStudio中,当以这种方式使用时,单词功能是亮蓝色。
答案 0 :(得分: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)