找到最大的小元素

时间:2014-11-20 21:48:02

标签: r list

我有两个索引列表:

 > k.start
 [1]    3   19   45  120  400  809 1001
 > k.event
 [1]   3   4  66 300

我需要一个列表,其中包含k.event的每个元素,k.start中小于或等于它的最大值。期望的结果是

k.desired = c(3,3,45,120)

所以,我试图复制这段代码,除非没有for循环:

for (i in 1:length(k.start){
   k.start[max(which(k.event[i] > k.start))]
}

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用

vapply(k.event, function(x) max(k.start[k.start <= x]), 1)
# [1]   3   3  45 120