这个问题似乎R尚未得到解决.所以,举个例子
a <- c(20, 104, 380, 388)
b <- c(16, 38, 108, 130, 200, 222, 291, 314, 384, 406, 476, 498, 568, 591)
Run Code Online (Sandbox Code Playgroud)
我怎么觉得在这些数字b后面那些a?因此,这里的解决方案应该是[38 108 384 406].
需要注意的是a和b长度可以变化.
这使用了这个findInterval功能:
b[findInterval(a, b)+1]
#### [1] 38 108 384 406
Run Code Online (Sandbox Code Playgroud)
这(以及此处建议的其他一些解决方案)需要您先前对b矢量进行排序.
您可以使用参数left.open来确定数字相等时您想要的行为.