arrow
套件包含 37 個 dplyr
表格函數的方法,其中許多是「動詞」,用於對一個或多個表格進行轉換。該套件還具有 212 個 R 函數到 Arrow 計算函式庫中對應函數的映射。這些映射讓您可以在 dplyr
方法內部編寫呼叫 R 函數的程式碼,包括 stringr
和 lubridate
等套件中的許多函數,它們將被翻譯成 Arrow 並在 Arrow 查詢引擎 (Acero) 上執行。本文檔列出了所有已映射的函數。
dplyr
動詞
大多數動詞函數返回一個 arrow_dplyr_query
物件,在精神上類似於 dbplyr::tbl_lazy
。這表示這些動詞不會在資料上急切地評估查詢。若要執行查詢,請呼叫 compute()
(它會傳回一個 arrow
Table) 或 collect()
(它會將結果 Table 拉取到 R tibble
中)。
anti_join()
:copy
參數會被忽略distinct()
:不支援.keep_all = TRUE
full_join()
:copy
參數會被忽略inner_join()
:copy
參數會被忽略left_join()
:copy
參數會被忽略pull()
:不支援name
參數;預設傳回 R 向量,但此行為已棄用,未來版本將傳回 Arrow ChunkedArray。提供as_vector = TRUE/FALSE
以控制此行為,或全域設定options(arrow.pull_as_vector)
。right_join()
:copy
參數會被忽略semi_join()
:copy
參數會被忽略slice_head()
:不支援在群組內切片;Arrow 資料集沒有列順序,因此 head 是非決定性的;僅在nrow()
在不評估的情況下可知的查詢中支援prop
slice_max()
:不支援在群組內切片;不支援with_ties = TRUE
(dplyr 預設值);僅在nrow()
在不評估的情況下可知的查詢中支援prop
slice_min()
:不支援在群組內切片;不支援with_ties = TRUE
(dplyr 預設值);僅在nrow()
在不評估的情況下可知的查詢中支援prop
slice_sample()
:不支援在群組內切片;不支援replace = TRUE
和weight_by
參數;僅在nrow()
在不評估的情況下可知的查詢中支援n
slice_tail()
:不支援在群組內切片;Arrow 資料集沒有列順序,因此 tail 是非決定性的;僅在nrow()
在不評估的情況下可知的查詢中支援prop
summarise()
:目前不支援視窗函數;不支援參數.drop = FALSE
和.groups = "rowwise"
函數映射
在下面的列表中,列出了 Acero 和 R 函數之間在行為或支援方面的任何差異。如果函數名稱後沒有註解,則您可以假設該函數在 Acero 中的運作方式與在 R 中相同。
函數可以呼叫為 pkg::fun()
或僅 fun()
,即 str_sub()
和 stringr::str_sub()
都可以使用。
除了這些函數之外,您還可以**直接**呼叫 Arrow 的任何 262 個計算函數。Arrow 有許多函數沒有映射到現有的 R 函數。在其他有 R 函數映射的情況下,如果您不想要 R 映射所做的使 Acero 行為類似於 R 的調整,您仍然可以直接呼叫 Arrow 函數。這些函數列在 C++ 文件中,並且在 R 中的函數註冊表中,它們以 arrow_
字首命名,例如 arrow_ascii_is_decimal
。
base
as.Date()
:Arrow 中不支援多個tryFormats
。請考慮使用 lubridate 專用的解析函數ymd()
、ymd()
等。as.difftime()
:僅支援units = "secs"
(預設值)data.frame()
:不支援row.names
和check.rows
參數;stringsAsFactors
必須為FALSE
difftime()
:僅支援units = "secs"
(預設值);不支援tz
參數nchar()
:不支援allowNA = TRUE
和keepNA = TRUE
paste()
:尚不支援collapse
參數paste0()
:尚不支援collapse
參數strptime()
:接受base
函數中不存在的unit
參數。有效值為 "s"、"ms" (預設值)、"us"、"ns"。substr()
:start
和stop
的長度必須為 1
dplyr
case_when()
:不支援.ptype
和.size
參數
lubridate
dmy()
:不支援locale
參數dmy_h()
:不支援locale
參數dmy_hm()
:不支援locale
參數dmy_hms()
:不支援locale
參數dpicoseconds()
:不支援dym()
:不支援locale
參數fast_strptime()
:不支援lt
和cutoff_2000
的非預設值force_tz()
:不支援從非 UTC 時區轉換時區;對於不存在的時間,支援 'error' 和 'boundary' 的roll_dst
值,對於不明確的時間,支援 'error'、'pre' 和 'post' 的roll_dst
值。is.Date()
is.POSIXct()
make_datetime()
:僅支援 UTC (預設) 時區make_difftime()
:僅支援units = "secs"
(預設值);不支援同時提供num
和...
mdy()
:不支援locale
參數mdy_h()
:不支援locale
參數mdy_hm()
:不支援locale
參數mdy_hms()
:不支援locale
參數my()
:不支援locale
參數myd()
:不支援locale
參數parse_date_time()
:不支援quiet = FALSE
。可用格式為 H、I、j、M、S、U、w、W、y、Y、R、T。在 Linux 和 OS X 上,還可以使用 a、A、b、B、Om、p、r。ydm()
:不支援locale
參數ydm_h()
:不支援locale
參數ydm_hm()
:不支援locale
參數ydm_hms()
:不支援locale
參數ym()
:不支援locale
參數ymd()
:不支援locale
參數ymd_h()
:不支援locale
參數ymd_hm()
:不支援locale
參數ymd_hms()
:不支援locale
參數yq()
:不支援locale
參數
stats
median()
:計算近似中位數 (t-digest)quantile()
:probs
的長度必須為 1;計算近似分位數 (t-digest)
stringr
任何函數都不支援模式修飾符 coll()
和 boundary()
。
str_c()
:尚不支援collapse
參數str_count()
:pattern
必須是長度為 1 的字元向量str_split()
:不支援不區分大小寫的字串分割和分割成 0 部分str_sub()
:start
和end
的長度必須為 1