2

我正在尝试创建一个函数,该函数根据给定的向量确定某个值进入哪个桶。所以我的函数有两个输入:确定存储桶断点的向量(例如:如果向量是 (1,4,5,10),存储桶将 <=1, 110)和某个数字。我希望函数输出确定存储桶的某个值。例如,如果我输入 0.9,输出可能是 1、1.6,输出可能是 4、5.8,输出可能是 10,而 13,输出可能是“10+”。

我现在这样做的方式是首先检查输入数字是大于向量的最大元素还是小于向量的最小元素。如果没有,然后我运行一个 for 循环(无法弄清楚如何使用 apply)来检查数字是否在每个特定间隔内。问题是这太低效了,因为我正在处理一个大型数据集。有谁知道这样做的有效方法?

4

1 回答 1

4

cut()功能便于分桶: cut(splitme,breaks=vectorwithsplits).

但是,看起来您实际上是在尝试找出插入点。你需要像二分搜索这样的东西。

于 2013-07-09T14:54:00.663 回答