S3 方法和用法
表格类似于数据帧,并且许多您期望在 data.frame
上使用的函数都针对 Table
进行了实现。这包括 [
、[[
、$
、names
、dim
、nrow
、ncol
、head
和 tail
。您还可以使用 as.data.frame()
将 Arrow 表格中的数据提取到 R 中。请参阅示例。
关于 $
方法的一个注意事项:因为 Table
是一个 R6
对象,所以 $
也用于访问对象的函数(见下文)。函数优先于表格的列。因此,tab$Slice
将返回 "Slice" 函数,即使表格中有一个名为 "Slice" 的列。
R6 函数
除了更友好的 R S3 函数外,Table
对象还具有以下映射到底层 C++ 函数的 R6 函数
$column(i)
:从表格中提取一个ChunkedArray
,通过整数位置。$ColumnNames()
:获取所有列名(由names(tab)
调用)。$nbytes()
:表格中所有元素消耗的总字节数。$RenameColumns(value)
:设置所有列名(由names(tab) <- value
调用)。$GetColumnByName(name)
:通过字符串名称提取一个ChunkedArray
。$field(i)
:通过整数位置从表格模式中提取一个Field
。$SelectColumns(indices)
:返回一个包含指定列的新Table
,以 0 为基的整数表示。$Slice(offset, length = NULL)
:创建一个从指定整数偏移量开始的零拷贝视图,并持续到给定的长度,如果为NULL
,则持续到表格的末尾,这是默认行为。$Take(i)
:返回一个Table
,其中包含由整数i
指定的位置的 rows。如果i
是一个 ArrowArray
或ChunkedArray
,它将在取值之前被强制转换为 R 向量。$Filter(i, keep_na = TRUE)
:返回一个Table
,其中包含逻辑向量或 Arrow 布尔类型(Chunked)Array
i
为TRUE
的位置的 rows。$SortIndices(names, descending = FALSE)
:返回一个Array
,其中包含可以用来按第一个命名列的升序或降序重新排列Table
的整数行位置,并使用后续命名列来打破平局。descending
可以是长度为 1 或与names
长度相同的逻辑向量。$serialize(output_stream, ...)
:将表格写入给定的 OutputStream$cast(target_schema, safe = TRUE, options = cast_options(safe))
:更改记录批次的模式。
还有一些活跃的绑定
$num_columns
$num_rows
$schema
$metadata
:将Schema
的键值元数据作为命名列表返回。通过在(tab$metadata <- new_metadata
)中赋值来修改或替换。所有列表元素都将被强制转换为字符串。有关更多信息,请参阅schema()
。$columns
:返回一个ChunkedArray
列表