假設我有一個向量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