6 数据操作 - 数组
6.1 简介
Arrow 数组大致相当于 R 向量 - 它可以用来表示单个数据列,所有值具有相同的数据类型。
许多具有 S3 通用方法的 R 基本函数已实现为在 Arrow 数组上工作;例如 mean
、min
和 max
。
6.2 过滤与谓词或掩码匹配的值
您想要搜索数组中与谓词条件匹配的值。
6.3 计算数组的平均值/最小值/最大值等
您想要计算数组中值的平均值、最小值或最大值。
6.3.2 讨论
许多 R 基本通用函数,如 mean()
、min()
和 max()
,已映射到它们的 Arrow 等效项,因此可以以相同的方式在 Arrow 数组对象上调用它们。它们将返回 Arrow 对象本身。
如果您想使用没有 Arrow 映射的 R 函数,您可以使用 as.vector()
将 Arrow 对象转换为 R 基本向量。
<- Array$create(1:100)
arrow_array # get Tukey's five-number summary
fivenum(as.vector(arrow_array))
## [1] 1.0 25.5 50.5 75.5 100.0
您可以通过查看函数的主体来判断一个函数是否是标准 S3 通用函数 - S3 通用函数调用 UseMethod()
来确定要用于该对象的该函数的适当版本。
mean
## function (x, ...)
## UseMethod("mean")
## <bytecode: 0x564a10424388>
## <environment: namespace:base>
您还可以使用 isS3stdGeneric()
来确定一个函数是否是 S3 通用函数。
isS3stdGeneric("mean")
## mean
## TRUE
如果您发现一个未为 Arrow 对象实现的 S3 通用函数,但您希望能够使用它,请在项目 JIRA 上打开一个问题。
6.4 统计数组中元素出现的次数
您想要统计数组中重复值的次数。
6.5 对数组应用算术函数。
您希望对 Array 对象使用各种算术运算符。
6.6 直接在数组上调用 Arrow 计算函数
您希望直接在 Array 上调用 Arrow 计算函数。
6.6.1 解决方案
<- Array$create(1:100)
first_100_numbers
# Calculate the variance of 1 to 100, setting the delta degrees of freedom to 0.
call_function("variance", first_100_numbers, options = list(ddof = 0))
## Scalar
## 833.25
6.6.3 另请参阅
有关 Arrow 计算函数的更深入讨论,请参阅关于 在 arrow 中使用 dplyr 动词中的 arrow 函数 的部分。