2013-02-28 33 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) 
相關問題