R語言:數據的分割-計算-整合(split-apply-aggregate)


當獲取到原始數據時,我們通常的做法是對該數據進行分割成小片段,然后對各小片段進行計算統計,最后整合成最終的數據。這是統計學里數據處理的一般規律。

R語言為我們提供了相應的函數來分別處理這三個階段任務。

分割:split()和subset()函數。

計算:apply(),lapply(),tapply(),sapply()

整合:aggregate()

注意幾點:

1.向量,矩陣,數組的長度就是它元素的個數,用length獲取;而數據集,列表的長度則是它變量的個數,注意二者的不同。

實際上,向量和矩陣是特殊的數組,而數據集是特殊的列表。才表現出上述形式來。

2.批處理函數apply簇:

作用目標 在每個元素上應用 在子集合上應用
array apply tapply
list lapply(...) by

apply和lapply作用在元素上,而tapply和by作用在子集合上。

二,實際用法:

tapply

tapply(array, indices, margin, FUN=NULL, ...)

indices中的值分組,把相同值對應下標的array中的元素形成一個集合,應用到FUN

by

by(dataframe, INDICES, FUN, ..., simplify=TRUE)

by是針對數據集進行的,功能同taaply函數,INDICES的長度等於每列變量的長度,因此它是將數據集按照行進行分割。

lapply

lapply(list, FUN, ...)
list上按照變量分組分別調用FUN,相當於apply。可以用於dataframe上,因為dataframe是一種特殊形式的list。

具體使用方法參考:R語言apply函數簇使用方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM