6 處理資料 - 陣列
6.1 簡介
Arrow 陣列約等於一個 R 向量 - 它可以用來表示單一資料欄,所有值都具有相同的資料類型。
已實作許多基本 R 函式(具有 S3 通用方法)以在 Arrow 陣列上執行作業;例如 mean
、min
和 max
。
6.2 依符合述詞或遮罩的數值篩選
您想在陣列中搜尋符合述詞條件的數值。
6.3 計算陣列的平均值/最小值/最大值等
您想要計算陣列中數值的平均值、最小值或最大值。
6.3.2 論壇
許多基礎 R 泛函函式,例如 mean()
、min()
和 max()
已對應其 Arrow 等價對應項,因此可以用相同的方式在 Arrow 陣列物件中呼叫。它們將回傳 Arrow 物件本身。
如果您想要使用沒有 Arrow 對應項的 R 函式,您可以使用 as.vector()
來將 Arrow 物件轉換為基礎 R 向量。
<- Array$create(1:100)
arrow_array # get Tukey's five-number summary
fivenum(as.vector(arrow_array))
## [1] 1.0 25.5 50.5 75.5 100.0
您可以查看函式的本體來判斷函式是否是標準 S3 泛函函式,S3 泛函函式會呼叫 UseMethod()
來判斷該物件要使用該函式哪一個版本。
mean
## function (x, ...)
## UseMethod("mean")
## <bytecode: 0x564a10424388>
## <environment: namespace:base>
您也可以使用 isS3stdGeneric()
來判斷函式是否為 S3 泛函函式。
isS3stdGeneric("mean")
## mean
## TRUE
如果您發現某個 S3 泛函函式未針對 Arrow 物件實作,但想要使用其功能,請 前往專案 JIRA 開立問題。
6.4 計算陣列中元素的出現次數
您想要計算陣列中重複的數值。
6.5 將算術函式應用到陣列
您想要對陣列物件使用不同的算術運算子。
6.6 直接在陣列中呼叫 Arrow 計算函式
您想要直接在陣列中呼叫 Arrow 計算函式。
6.6.1 解决方案
<- Array$create(1:100)
first_100_numbers
# Calculate the variance of 1 to 100, setting the delta degrees of freedom to 0.
call_function("variance", first_100_numbers, options = list(ddof = 0))
## Scalar
## 833.25
6.6.3 另請參閱
如需關於箭頭計算函式的更深入探討,請參閱 arrow 中 dplyr 動詞中使用箭頭函式的 章節