hei*_*man 1 r dataframe cumsum
当超过阈值时,如何使用cumsum返回索引?
v <- c(1,5,7,9,10,14,16,17)
Threshold <- 10
Run Code Online (Sandbox Code Playgroud)
该函数将返回3,因为累积和将仅大于10,这提供了e索引3作为结果.
我们可以用 which
which(cumsum(v)>Threshold)[1]
#[1] 3
Run Code Online (Sandbox Code Playgroud)
要么 which.max
which.max(cumsum(v)>Threshold)
#[1] 3
Run Code Online (Sandbox Code Playgroud)
或者@nicola评论findInterval是另一种选择.它的优点是矢量化,可用于一次检查多个阈值.
findInterval(Threshold,cumsum(v))+1
#[1] 3
findInterval(c(10,49), cumsum(v))+1
#[1] 3 7
Run Code Online (Sandbox Code Playgroud)