让我们D
成为一个 data.frame,其中D$x
包含实数和D$y
布尔值,以及其他字段。
问题是对 的行进行排序,D
使其D$x
不递减,同时以一种使结果中不连续的数量最小化的方式打破联系D$y
。
有没有一种简单快速的方法可以在 R 中实现这一点?
更多信息
在像 CI 这样的语言中,首先按 x 排序,然后使用 2 状态 FSM 依次传递结果,以尽可能消除不连续性。但是在 R 中,如果有数千行要按顺序处理,我希望迭代会带来不必要的开销。
正确结果示例:
D$x D$y
1 FALSE
1 FALSE
1 TRUE
1 TRUE
1.2 TRUE
1.5 TRUE
1.5 FALSE
错误结果示例:
D$x D$y
1 TRUE
1 FALSE
1 TRUE
1 FALSE
1.2 TRUE
1.5 FALSE
1.5 TRUE
在示例中,正确的结果有 2 个不连续点,而错误的结果有 6 个。
编辑:我们可以假设数据使得结果中的不连续性密度很低:例如,每 1000 行少于 1 个不连续性。