可折叠运算(I)
如果一种运算对整个数据集直接计算,与先对数据集的各个分块计算再对分块结果汇总计算,得到的答案相同,那么这种运算有时被称为「可折叠」(foldable)。max() 和 min() 就是这样的例子。
这里,我们定义了一个可折叠版本的 range() 函数,它可以接受一个向量,或由多个向量组成的列表。
请在房贷数据集上进行测试,验证该函数是否有效。
本练习是课程的一部分
R 的可扩展数据处理
练习说明
- 验证
foldable_range()可用于mort数据集的"record_number"列。
交互式实操练习
通过完成这段示例代码来试试这个练习。
foldable_range <- function(x) {
if (is.list(x)) {
# If x is a list then reduce it by the min and max of each element in the list
c(Reduce(min, x), Reduce(max, x))
} else {
# Otherwise, assume it's a vector and find its range
range(x)
}
}
# Verify that foldable_range() works on the record_number column
___