前言:apply函數篇的最後一篇~今天會介紹最後的tapply函數、rapply函數、eapply函數,如果內容有哪些錯誤的地方,請多多包涵~
正文開始-->
【tapply】
一種對向量或數據依據某些分組(通常是因子)應用函數的工具。常用於將數據分組後進行彙總或計算。
語法:tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)
X
:向量,表示要進行操作的數據。。INDEX
:一個因子或列表,指定如何將 X 進行分組。FUN
:應用於每組數據的函數,如 mean、sum 等。…
:其他可選的參數,將傳遞給 FUN。simplify
:邏輯值,表示是否簡化結果。如果為 TRUE,則會將結果簡化為向量或數據框;否則會返回列表。【rapply】
遞迴版的 lapply,用於遞迴地對列表的每個元素(甚至是嵌套的列表)應用函數。它可以選擇性地返回簡化結果或保持原有的嵌套結構。
語法:rapply(object, f, classes = "ANY", deflt = NULL, how = c("unlist", "replace", "list"), ...)
object
:list資料。f
:自訂的調用函數。classes
:匹配類型, ANY為所有類型。defl
t:非匹配類型的預設值。how
:3種操作方式。
how = "replace"
:表替換原列表中的值。如果設為 "list",結果會返回一個新列表,保持嵌套結構。【eapply】
用於對環境中的每個對象應用函數。環境類似於 R 中的命名空間,通常包含變量和對象。適合處理某個環境中的多個對象。
語法:eapply(env, FUN, ..., all.names = FALSE, USE.NAMES = TRUE)
env
:環境空間。FUN
:自訂的調用函數。…
:更多參數,可選。all.names
:匹配類型, ANY為所有類型。USE.NAMES
:如果X為字串,TRUE設定字串為資料名,FALSE不設定。三天的apply家族函數章節結束後,最後簡述一下八個函數的定義:
apply
:更適合對矩陣或陣列進行操作。lapply
:則用於對清單中的每個元素進行函數應用,適合處理複雜或不規則的資料結構(如列表)。sapply
:類似 lapply,但結果會自動簡化為向量或矩陣,適合處理結果類型一致的情況。。vapply
:更嚴格的 sapply,需要明確指定回傳值的類型,提高程式碼安全性,適合在大規模資料處理時使用。mapply
:可以同時處理多個清單或向量,適合處理需要多組輸入資料的函數呼叫。tapply
:用於對向量中的數據按因子分組,應用函數。適用於分組彙總或統計。rapply
:遞迴版的 lapply,用於對嵌套列表的每個元素遞迴地應用函數。適用於複雜的嵌套數據結構。eapply
:用於對環境中的每個對象應用函數,適合處理環境中的數據或變量。參考: