在 nanoarrow 中,'陣列' 指的是 Arrow C 資料介面中的 struct ArrowArray
定義。在 R 層級,我們附加了結構描述,使得在功能上,nanoarrow_array 類別可以以類似於 arrow::Array
的方式使用。請注意,在 nanoarrow 中,arrow::RecordBatch
和不可為 null 的 arrow::StructArray
以相同方式表示。
參數
- x
要轉換為陣列的物件
- ...
傳遞給 S3 方法
- schema
用於強制轉換為特定類型的可選結構描述。預設為
infer_nanoarrow_schema()
。
範例
(array <- as_nanoarrow_array(1:5))
#> <nanoarrow_array int32[5]>
#> $ length : int 5
#> $ null_count: int 0
#> $ offset : int 0
#> $ buffers :List of 2
#> ..$ :<nanoarrow_buffer validity<bool>[null] ``
#> ..$ :<nanoarrow_buffer data<int32>[5][20 b]> `1 2 3 4 5`
#> $ dictionary: NULL
#> $ children : list()
as.vector(array)
#> [1] 1 2 3 4 5
(array <- as_nanoarrow_array(data.frame(x = 1:5)))
#> <nanoarrow_array struct[5]>
#> $ length : int 5
#> $ null_count: int 0
#> $ offset : int 0
#> $ buffers :List of 1
#> ..$ :<nanoarrow_buffer validity<bool>[null] ``
#> $ children :List of 1
#> ..$ x:<nanoarrow_array int32[5]>
#> .. ..$ length : int 5
#> .. ..$ null_count: int 0
#> .. ..$ offset : int 0
#> .. ..$ buffers :List of 2
#> .. .. ..$ :<nanoarrow_buffer validity<bool>[null] ``
#> .. .. ..$ :<nanoarrow_buffer data<int32>[5][20 b]> `1 2 3 4 5`
#> .. ..$ dictionary: NULL
#> .. ..$ children : list()
#> $ dictionary: NULL
as.data.frame(array)
#> x
#> 1 1
#> 2 2
#> 3 3
#> 4 4
#> 5 5