我有一个随机数列表。
x=sample(1:1000, 3)
是否有一种简单的方法来获取每个元素所属的范围值的列表?
id=seq(1, 1000, by=50)
[1] 1 51 101 151 201 251 301 351 401 451 501 551
[13] 601 651 701 751 801 851 901 951
例如
x
[1] 637 374 68
distribution
[1] "601~650" "351~400" "51~100"
答案 0 :(得分:1)
使用findInterval
尝试此简单的解决方案:
cbind(x,lim_inf=id[findInterval(x,id)],lim_sup=id[findInterval(x,id)+1])
x lim_inf lim_sup
[1,] 378 351 401
[2,] 609 601 651
[3,] 496 451 501