在 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
十進位型別中小數點後的位數
範例
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