我有两个索引列表:
> 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))]
}
谢谢!
答案 0 :(得分:2)
您可以使用
vapply(k.event, function(x) max(k.start[k.start <= x]), 1)
# [1] 3 3 45 120