我实际上很难表达我的问题,因此,如果有人对此有任何反馈,我很想听听。
我在R中工作,有一个长度不同的向量和数据帧:
xp.data <- c(400,500,600,700)
XPTable <- data.frame("Level"=1:10,"XP"=c(10,50,100,200,400,600,700,800,900,1000))
我希望获得一个新的向量:
> lv.data
[1] 5 5 6 7
我们的目标是不使用循环,因为xp.data
向量可以是任意长度,XPTable
数据帧也可以具有不同的长度。
如果我在没有xp.data
的向量的情况下这样做,我只会使用:
max(XPTable$Level[XPTable$XP < XP.data])
但是,这仅在XP.data的长度为1时有效。
答案 0 :(得分:2)
lv.data <- findInterval(xp.data, XPTable$XP)
print(lv.data)
# [1] 5 5 6 7