These functions create type objects corresponding to Arrow types. Use them
when defining a schema() or as inputs to other types, like struct. Most
of these functions don't take arguments, but a few do.
int8() int16() int32() int64() uint8() uint16() uint32() uint64() float16() halffloat() float32() float() float64() boolean() bool() utf8() large_utf8() binary() large_binary() fixed_size_binary(byte_width) string() date32() date64() time32(unit = c("ms", "s")) time64(unit = c("ns", "us")) null() timestamp(unit = c("s", "ms", "us", "ns"), timezone = "") decimal(precision, scale) struct(...) list_of(type) large_list_of(type) fixed_size_list_of(type, list_size)
| byte_width | byte width for |
|---|---|
| unit | For time/timestamp types, the time unit. |
| timezone | For |
| precision | For |
| scale | For |
| ... | For |
| type | For |
| list_size | list size for |
An Arrow type object inheriting from DataType.
A few functions have aliases:
utf8() and string()
float16() and halffloat()
float32() and float()
bool() and boolean()
When called inside an arrow function, such as schema() or cast(),
double() also is supported as a way of creating a float64()
date32() creates a datetime type with a "day" unit, like the R Date
class. date64() has a "ms" unit.
uint32 (32 bit unsigned integer), uint64 (64 bit unsigned integer), and
int64 (64-bit signed integer) types may contain values that exceed the
range of R's integer type (32-bit signed integer). When these arrow objects
are translated to R objects, uint32 and uint64 are converted to double
("numeric") and int64 is converted to bit64::integer64. For int64
types, this conversion can be disabled (so that int64 always yields a
bit64::integer64 object) by setting options(arrow.int64_downcast = FALSE).
dictionary() for creating a dictionary (factor-like) type.
bool() #> Boolean #> bool struct(a = int32(), b = double()) #> StructType #> struct<a: int32, b: double> timestamp("ms", timezone = "CEST") #> Timestamp #> timestamp[ms, tz=CEST] time64("ns") #> Time64 #> time64[ns]