当索引和值之间的差异满足 r 中的条件时,返回向量的索引

标签 r vector

我在表述这个问题时遇到了麻烦,所以如果有人可以按照标准对其进行编辑,那就太好了。

我有一个看起来像这样的向量:

 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/

相关文章:

c++ - 用类和 vector 重载赋值运算符

c++ - 使用 vector 解决 C++ 中的字谜

r - 查找列之间的一对一、一对多和多对一关系

c++ - 我应该如何从 map<char, vector<char>> 生成所有可能的 map<char, char> 组合?

c++ - C++ 中的 vector 与数组?

c++ - QVector 与 QList

r - R 中是否有更好的、干净的一次性函数方法?

r - 使用 grid.raster 在列表中的每个 ggplot 对象上叠加图像的方法?

r - 绘制三变量折线图

regex - R:删除字符串开头的前导零