S3 方法和用法
表类似于数据框,许多您期望在 data.frame
上工作的方法都已为 Table
实现。这包括 [
、[[
、$
、names
、dim
、nrow
、ncol
、head
和 tail
。您还可以使用 as.data.frame()
将 Arrow 表中的数据提取到 R 中。请参阅示例。
关于 $
方法的警告:由于 Table
是一个 R6
对象,$
也用于访问对象的 方法(见下文)。方法优先于表的列。因此,即使表中存在名为“Slice”的列,tab$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
指定位置的行。如果i
是 ArrowArray
或ChunkedArray
,它将在获取之前被强制转换为 R 向量。$Filter(i, keep_na = TRUE)
:返回一个Table
,其中包含逻辑向量或 Arrow 布尔类型(Chunked)Array
i
为TRUE
的位置处的行。$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
列表