我有以下数据集:
PATH = c("5-8-10-8-17-20",
"56-85-89-89-0-15-88-10",
"58-85-89-65-49-51")
INDX = c(18, 89, 50)
data.frame(PATH, INDX)
PATH | INDX |
---|---|
5-8-10-8-17-20 | 18 |
56-85-89-89-0-15-88-10 | 89 |
58-85-89-65-49-51 | 50 |
列路径具有表示数字系列的字符串,我希望能够从满足PATH <= INDX
的字符串中 Select 最大的数字,即从路径中 Select 一个等于INDX
的数字,或从PATH
中 Select 一个小于INDX
的最大数字
我想要的输出如下所示:
PATH | INDX | PICK |
---|---|---|
5-8-10-8-17-20 | 18 | 17 |
56-85-89-89-0-15-88-10 | 89 | 88 |
58-85-89-65-49-51 | 50 | 49 |
以下是我对答案的一些思考过程:
我知道如果我有一个像strsplit
这样的函数,我可以用"-"
来分隔每个字符串,按数字排列,然后用INDX
减go ,从而 Select 最小的负数或零.然而,原始数据集相当大,我想知道是否有更快或更有效的方法来执行这项任务.