跳至內容

在 nanoarrow 中,型別、欄位和模式都由 nanoarrow_schema 表示。這些函式是方便的建構子,用於以可讀的方式建立這些物件。使用 na_type() 根據建構子名稱(也就是 nanoarrow_schema_parse() 列印/傳回的名稱)來建構型別。

用法

na_type(
  type_name,
  byte_width = NULL,
  unit = NULL,
  timezone = NULL,
  column_types = NULL,
  item_type = NULL,
  key_type = NULL,
  value_type = NULL,
  index_type = NULL,
  ordered = NULL,
  list_size = NULL,
  keys_sorted = NULL,
  storage_type = NULL,
  extension_name = NULL,
  extension_metadata = NULL,
  nullable = NULL
)

na_na(nullable = TRUE)

na_bool(nullable = TRUE)

na_int8(nullable = TRUE)

na_uint8(nullable = TRUE)

na_int16(nullable = TRUE)

na_uint16(nullable = TRUE)

na_int32(nullable = TRUE)

na_uint32(nullable = TRUE)

na_int64(nullable = TRUE)

na_uint64(nullable = TRUE)

na_half_float(nullable = TRUE)

na_float(nullable = TRUE)

na_double(nullable = TRUE)

na_string(nullable = TRUE)

na_large_string(nullable = TRUE)

na_string_view(nullable = TRUE)

na_binary(nullable = TRUE)

na_large_binary(nullable = TRUE)

na_fixed_size_binary(byte_width, nullable = TRUE)

na_binary_view(nullable = TRUE)

na_date32(nullable = TRUE)

na_date64(nullable = TRUE)

na_time32(unit = c("ms", "s"), nullable = TRUE)

na_time64(unit = c("us", "ns"), nullable = TRUE)

na_duration(unit = c("ms", "s", "us", "ns"), nullable = TRUE)

na_interval_months(nullable = TRUE)

na_interval_day_time(nullable = TRUE)

na_interval_month_day_nano(nullable = TRUE)

na_timestamp(unit = c("us", "ns", "s", "ms"), timezone = "", nullable = TRUE)

na_decimal128(precision, scale, nullable = TRUE)

na_decimal256(precision, scale, nullable = TRUE)

na_struct(column_types = list(), nullable = FALSE)

na_sparse_union(column_types = list())

na_dense_union(column_types = list())

na_list(item_type, nullable = TRUE)

na_large_list(item_type, nullable = TRUE)

na_fixed_size_list(item_type, list_size, nullable = TRUE)

na_map(key_type, item_type, keys_sorted = FALSE, nullable = TRUE)

na_dictionary(value_type, index_type = na_int32(), ordered = FALSE)

na_extension(storage_type, extension_name, extension_metadata = "")

引數

type_name

型別的名稱(例如 "int32")。此建構子形式適用於撰寫迴圈遍歷多種類型的測試。

byte_width

對於 na_fixed_size_binary(),每個項目佔用的位元組數。

unit

以下其中之一:'s'(秒)、'ms'(毫秒)、'us'(微秒)或 'ns'(奈秒)。

timezone

代表時區名稱的字串。空字串 "" 代表樸素時間點(即沒有關聯時區的時間點)。

column_types

list()nanoarrow_schema 列表。

item_type

對於 na_list()na_large_list()na_fixed_size_list()na_map(),代表項目型別的 nanoarrow_schema

key_type

代表 na_map() 鍵型別的 nanoarrow_schema

value_type

代表 na_dictionary()na_map() 值型別的 nanoarrow_schema

index_type

代表 na_dictionary() 索引型別的 nanoarrow_schema

ordered

使用 TRUE 來斷言字典中值的順序是有意義的。

list_size

na_fixed_size_list() 中每個項目的元素數量。

keys_sorted

使用 TRUE 來斷言鍵已排序。

storage_type

對於 na_extension(),底層值型別。

extension_name

對於 na_extension(),擴充功能名稱。這通常是以點分隔命名空間(例如,arrow.r.vctrs)。

extension_metadata

定義擴充功能中繼資料的字串或原始向量。大多數 Arrow 擴充功能型別將擴充功能中繼資料定義為 JSON 物件。

nullable

使用 FALSE 來斷言此欄位不能包含空值。

precision

十進位型別可表示的總位數

scale

十進位型別中小數點後的位數

一個 nanoarrow_schema

範例

na_int32()
#> <nanoarrow_schema int32>
#>  $ format    : chr "i"
#>  $ name      : chr ""
#>  $ metadata  : list()
#>  $ flags     : int 2
#>  $ children  : list()
#>  $ dictionary: NULL
na_struct(list(col1 = na_int32()))
#> <nanoarrow_schema struct>
#>  $ format    : chr "+s"
#>  $ name      : chr ""
#>  $ metadata  : list()
#>  $ flags     : int 0
#>  $ children  :List of 1
#>   ..$ col1:<nanoarrow_schema int32>
#>   .. ..$ format    : chr "i"
#>   .. ..$ name      : chr "col1"
#>   .. ..$ metadata  : list()
#>   .. ..$ flags     : int 2
#>   .. ..$ children  : list()
#>   .. ..$ dictionary: NULL
#>  $ dictionary: NULL