天天看點

《R語言資料挖掘:實用項目解析》——1.11 apply原理

本節書摘來自華章計算機《r語言資料挖掘:實用項目解析》一書中的第1章,第1.11節,作者[印度]普拉迪帕塔·米什拉(pradeepta mishra),譯 黃芸,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

apply函數以一個數組、一個矩陣或一個資料框作為輸入,傳回一個數組格式的結果。計算或運算由使用者的自定義函數或内置函數定義。margin參數用于指定函數要作用于哪條邊以及要保留哪條邊。如果使用的數組是一個矩陣,那麼可以指定margin是1(将函數應用于行)或2(将函數應用于列)。函數可以是任意使用者自定義函數或内置函數,比如mean、median、standard deviation、variance等。這裡我們将用artpiece資料集來執行這個任務:

《R語言資料挖掘:實用項目解析》——1.11 apply原理

lapply函數在處理資料框(應用任何函數)時很有用。在r語言中,資料框被當作一個清單,資料框中的變量就是清單中的元素。是以,我們可以利用lapply将一個函數應用到一個資料框中的所有變量上,示例如下:

《R語言資料挖掘:實用項目解析》——1.11 apply原理

sapply函數适用于一個清單中的元素,傳回的結果是一個向量、矩陣或者清單。當參數是simplify=f時,sapply函數會像lapply函數那樣傳回一個清單;反之,當參數是simplify=t,即預設參數時,sapply會以簡化的格式傳回結果:

《R語言資料挖掘:實用項目解析》——1.11 apply原理

有時我們想将一個函數應用到一個向量的子集,這些子集通常由其他向量定義(通常是一個因子)。tapply函數輸出的是一個矩陣/數組,矩陣/數組中的每個元素是向量的g分組上f的值,g分組作用于行/列名上:

《R語言資料挖掘:實用項目解析》——1.11 apply原理
《R語言資料挖掘:實用項目解析》——1.11 apply原理

apply函數族還包含其他一些函數,例如:

eapply:将一個函數應用于一個環境中的變量。

mapply:将一個函數應用于多個清單或多個向量參數。

sapply:遞歸地将一個函數應用于一個清單。

繼續閱讀