在R中,如果你没有定义函数,function()意味着什么?

Jas*_*son 0 r

我第一次使用R来学习如何编写分类算法.我主要是从O'reilly书中学习黑客机器学习.

R,R文档,电子书以及关于编写函数的书中有大量信息.但是,本书中有一些代码片段使用单词function,其方式似乎不符合我对函数使用的理解.例如:

all.spam <- sapply(spam.docs, function(p) get.msg(paste(spam.path,p,sep="")))
Run Code Online (Sandbox Code Playgroud)

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

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

Mar*_*ius 6

在R中,您使用相同的语法定义匿名和命名函数,因此您的示例:

all.spam <- sapply(spam.docs, function(p) get.msg(paste(spam.path,p,sep="")))
Run Code Online (Sandbox Code Playgroud)

相当于:

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

all.spam2 <- sapply(spam.docs, my_spam_func)
Run Code Online (Sandbox Code Playgroud)