【发布时间】:2018-09-13 14:20:58
【问题描述】:
x <- seq(1:100)
y <- 30
如果我想确定x>y的累积和的位置
which.max(cumsum(x) >= y)
[1] 9 #
相反,如果 y 是一个向量,即我想为每个元素返回 y,x的位置
y <- c(30, 60, 80, 90)
which.max(cumsum(x) >= y)
[1] 9
为什么不重新调整位置向量?
【问题讨论】:
-
为什么不在这里使用 for 循环?
for( i in y) { which.max(cumsum >= i) }然后更新列表 -
我想避免循环,但感谢您的建议。
-
您可能需要使用 sapply?
-
你检查过
cumsum(x) >= y的样子吗?也许用一个更小的例子来试试。这可能有助于您了解正在发生的事情。 -
这里stackoverflow.com/questions/10378390/… 有一个答案指出
which.max在第一次出现后停止。不确定您是否可以在不陷入应用功能的情况下做您想做的事情。此外,检查which.max所做的事情,它明确表示:确定位置,即数字(或逻辑)向量的(第一个)最小值或最大值的索引。