r找到带有间隙/距离条件的最小值索引

时间:2016-11-30 13:06:08

标签: r conditional-statements minima

which(list <= sort(list, decreasing=FALSE)[3], arr.ind=TRUE)

我想找到3个最低值的索引,但条件是找到的最小值的索引彼此相差至少3个点。 找到我正在使用的3个最低指数

list<-c(1,3,9,5,9,9,2)

,它不会在

中查找任何条件和结果
  

1,2,3

我想要的结果是

  

1,9,4

我想知道是否可以在没有任何循环的情况下这样做,因为我的列表要大得多。

提前非常感谢你。

  

澄清我的意思:最小值的指数必须始终在一定距离内。例如,对于列表1,7,4,最小值的结果应为1,7,2。不是function openModal(modalRequestData){ var promise = generateModalPromise(modalRequestData); promise.then(function(response){ //do some stuff if(response){ var httpPromise = //make http call httpPromise.then(function(out){ //do some stuff regarding result of http call } modalRequestData.functionToCall(httpPromise); } } } ,因为索引1和2太靠近了。   再次感谢你帮助我。

1 个答案:

答案 0 :(得分:1)

使用dplyr尝试: 在第二列中创建一个包含序列的数据框,然后排序并找到第一个出现

library(dplyr)

kk <- data.frame(cbind(list, seq=seq_along(list))) %>% 
    arrange(list) %>%  # sort list
    group_by(list) %>% # group
    summarise(V3=min(seq)) %>% # find first occurance
    .$V3 %>% # get sequence values  
    head(3) # get top 3

[1] 1 9 4