返回使用.max的位置向量

89_*_*ple 1 r which cumsum

  x <- seq(1:100)
  y <- 30
Run Code Online (Sandbox Code Playgroud)

如果我想确定x> y的累积和的位置

  which.max(cumsum(x) >= y)
  [1] 9 # 
Run Code Online (Sandbox Code Playgroud)

相反,如果y是一个向量,即我想为y的每个元素返回x的位置

  y <- c(30, 60, 80, 90)
  which.max(cumsum(x) >= y)
  [1] 9
Run Code Online (Sandbox Code Playgroud)

为什么不重新调整位置向量?

Sot*_*tos 5

另一个量化想法是使用max.colouter,即

max.col(t(outer(cumsum(x), y, `>`)), 'first')
#[1]  8 11 13 13
Run Code Online (Sandbox Code Playgroud)