我在表述这个问题时遇到了麻烦,所以如果有人可以按照标准对其进行编辑,那就太好了。
我有一个看起来像这样的向量:
x <- c(1, 2, 5)
我如何返回最后一个索引,其中该位置的向量值与该位置的差为 = 0。
在这种情况下,我想拥有
2
因为向量的值和它在第三个元素的位置之间的差是> 0
x[3]-3.
附带说明,这是一个更大函数的一部分,其中向量“x”被构建为满足条件(超出范围)的值向量。在这个例子中,向量“x”被构建为向量的索引
y <- c(1, -0.544099347708607, 0.0330854828196116, 0.126862586350202, -0.189999318205021, 0.0709946572904202, -0.0290039765997793, 0.12201693346217, -0.120410983904152, 0.0974094609584081, -0.119147919464352, 0.0154264136176002, 0.115102403861495, -0.145980255860186, 0.116998886386955, -0.137041816761002, 0.114352714471954, 0.0228895094121642, -0.0679735427311049, 0.0350071153004831, -0.0145366468920295)
超出范围 (-.18, .18)
plot.ts(y)
abline(h = 0.18)
abline(h = -0.18)
最佳答案
你可以使用Position
函数:
Position(function(x) {x == 0}, x - 1:length(x), right=T)
见 http://stat.ethz.ch/R-manual/R-devel/library/base/html/funprog.html更多功能。
或者正如@Frank 下面所说的,
Position(`!`, x - 1:length(x), right=T)
这是因为 0
是假的,而其他数字是真的。
关于当索引和值之间的差异满足 r 中的条件时,返回向量的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30332072/