查找矢量的K个最近点到Rstudio中的单独点

时间:2016-11-10 07:44:04

标签: r

假设我有一个由(1,4,5,6,3,2,5,7,8,44,3,7)等点组成的向量X 我需要找到最接近6.4的K = 2点,意思是6和7是否有一个函数可以做到这一点,如果没有,那么在R中做到这一点的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

然后创建一个函数,

fun1 <- function(vec, val, k){
            vec[order(abs(vec-val))][seq_len(k)]
           }

fun1(x, 6.4, 2)
#[1] 6 7
fun1(x, 6.4, 3)
#[1] 6 7 7
fun1(x, 5, 4)
#[1] 5 5 4 6

要获取唯一值,请添加unique

fun1 <- function(vec, val, k){
          unique(vec[order(abs(vec-val))])[seq_len(k)]
          }
fun1(x, 6.4, 3)
#[1] 6 7 5