假设我有一个向量X,其中包含点(1,4,5,6,3,2,5,7,8,44,3) ,7) 我需要我想找到最接近6.4的K = 2个点,这意味着6和7是否有一个函数可以做到这一点,如果没有,在R中做什么最好的方法?查找矢量的K个最近点到Rstudio中的单独点
0
A
回答
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
'×〔顺序(ABS(X-6.4))] [1:2]' – Sotos