0

我第一次使用 R 来学习如何编写分类算法。我主要从 O'reilly 的Machine Learning for Hackers中学习。

R、R 文档、电子书和我的关于编写函数的书中有大量信息。但是,书中有一些代码片段使用函数这个词的方式似乎不符合我对函数使用的理解。例如:

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

其中 get.msg 是用户定义的函数, sapply 来自 base R, p 未在其代码中的任何位置定义。书中没有任何解释,我也尝试搜索和询问公司中的其他 R 用户,但无济于事。

有什么见解吗?提前致谢。顺便说一句,在 RStudio 中,以这种方式使用时,函数一词是亮蓝色的。

4

1 回答 1

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)
于 2013-03-01T00:01:01.110 回答