首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从向量的5个值中选择3个最接近的值?

如何从向量的5个值中选择3个最接近的值?
EN

Stack Overflow用户
提问于 2018-01-29 00:37:12
回答 2查看 69关注 0票数 0

如果我有一个只需要其中一些值的向量,我如何选择最接近的3个呢?

代码语言:javascript
复制
c(14.493,14.588,15.175,14.934,14.981)
EN

回答 2

Stack Overflow用户

发布于 2018-01-29 01:19:27

假设您指的是与特定值最接近的3个值,例如15,请使用以下代码:

代码语言:javascript
复制
data_5 <- c(14.493,14.588,15.175,14.934,14.981)
data_3 <- data_5[order(abs(data_5-15))[1:3]]
票数 0
EN

Stack Overflow用户

发布于 2018-01-29 07:49:30

代码语言:javascript
复制
closest3=function(x){
y=`is.na<-`(y<-abs(outer(x,x,"-")),y==0)
d=t(apply(y,2,function(i)which(rank(i,,"last")%in%c(1,2))))
e=cbind(1:length(x),d)
pos=e[which.min(colSums(abs(apply(e,1,function(j)diff(x[j]))))),]
setNames(x[pos],pos)
}
x=c(14.493,14.588,15.175,14.934,14.981)
closest3(x)
     3      4      5 
15.175 14.934 14.981 

另一个例子:

代码语言:javascript
复制
x=c(1,0.9,5,4.5,12,0.8)#We expect 1,0.9 and 0.8
closest3(e)
  1   2   6 
1.0 0.9 0.8 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48488666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档