R 哪个数字大于x并落在位置y之后

R 哪个数字大于x并落在位置y之后,r,R,哪个x数大于5且落在第10位之后?这是第11位的数字。 但是我发现自己写了一段很长的代码来得到答案,我想知道是否有更快的方法 x <- c(5,7,3,6,9,4,1,4,7,10,8,5,7,9,7,1, 8, 4, 4,9); 这标识x1的位置6 确定该数字在原始向量(x)中的位置: 现在我们有了我们想要的值在原始向量(x)中的位置,这段代码提取了我们想要的值: x[x1[first(which(x1 >10))]] 这似乎是一个很长的代码来回答一个简单的问题,您知道获得相同

哪个x数大于5且落在第10位之后?这是第11位的数字。 但是我发现自己写了一段很长的代码来得到答案,我想知道是否有更快的方法

x <- c(5,7,3,6,9,4,1,4,7,10,8,5,7,9,7,1, 8, 4, 4,9);
这标识x1的位置6

确定该数字在原始向量(x)中的位置:

现在我们有了我们想要的值在原始向量(x)中的位置,这段代码提取了我们想要的值:

x[x1[first(which(x1 >10))]]

这似乎是一个很长的代码来回答一个简单的问题,您知道获得相同结果的更短/更简单的方法吗?

一些非常简单的索引和子集有什么问题吗

这使得
x
中的所有元素的索引大于5,并且出现在位置
10
之后:

> which(x > 5 & seq_along(x) > 10)
[1] 11 13 14 15 17 20
所以最终的答案是

> which(x > 5 & seq_along(x) > 10)[1]
[1] 11

这里使用的技巧是使用
seq_-along()
函数生成一个索引向量
x
。这样,我们可以在一个逻辑语句中生成所有匹配项,然后选择其中的第一个

如果要提取已标识的元素,则:

> want <- which(x > 5 & seq_along(x) > 10)[1]
> x[want]
[1] 8
>想要沿着(x)>10的5个序列[1]
>x[想要]
[1] 8

[不清楚您是否要确定哪个元素符合您的标准或该元素的值。]

一些非常简单的索引和子集有什么问题

这使得
x
中的所有元素的索引大于5,并且出现在位置
10
之后:

> which(x > 5 & seq_along(x) > 10)
[1] 11 13 14 15 17 20
所以最终的答案是

> which(x > 5 & seq_along(x) > 10)[1]
[1] 11

这里使用的技巧是使用
seq_-along()
函数生成一个索引向量
x
。这样,我们可以在一个逻辑语句中生成所有匹配项,然后选择其中的第一个

如果要提取已标识的元素,则:

> want <- which(x > 5 & seq_along(x) > 10)[1]
> x[want]
[1] 8
>想要沿着(x)>10的5个序列[1]
>x[想要]
[1] 8

[不清楚您是否要确定哪个元素符合您的标准或该元素的值。]

使用编程提取索引的替代版本:

> Find(function(y) x[y] > 5 & y > 10, seq_along(x))
[1] 11
或提取元素:

> x[Find(function(y) x[y] > 5 & y > 10, seq_along(x))]
[1] 8

但是,不知道与简单索引相比在性能上的差异。

使用编程提取索引的替代版本:

> Find(function(y) x[y] > 5 & y > 10, seq_along(x))
[1] 11
或提取元素:

> x[Find(function(y) x[y] > 5 & y > 10, seq_along(x))]
[1] 8

不过,我不知道与简单索引相比在性能上有什么不同。

您能修复代码中的所有语法错误吗。R是区分大小写的,所以
x
x
不是同一个
对象
c
c
也不一样。另外,我不知道你为什么认为
first
是一个函数。是不是在你没有提到的软件包中?对不起,Joran,这是一个xts函数,我从word编辑器粘贴了我的问题,没有注意到它把一些字母大写了。第一行错误大写的两个字母已修复。立即停止使用Word-它不是代码编辑器!至少,windows上的记事本或写字板几乎比Word编码要好得多。有很多免费的编辑器是R-意识的,考虑使用其中之一:你能修复你的代码中的所有语法错误吗?R是区分大小写的,所以
x
x
不是同一个
对象
c
c
也不一样。另外,我不知道你为什么认为
first
是一个函数。是不是在你没有提到的软件包中?对不起,Joran,这是一个xts函数,我从word编辑器粘贴了我的问题,没有注意到它把一些字母大写了。第一行错误大写的两个字母已修复。立即停止使用Word-它不是代码编辑器!至少,windows上的记事本或写字板几乎比Word编码要好得多。有很多免费的编辑都有R-意识,考虑使用其中一个:谢谢加文,这是helpful@user2004820如果是这样,请考虑接受答案。有关如何执行此操作以及为什么它对的有用的详细信息,请参阅的部分。谢谢Gavin,这是helpful@user2004820如果是这样,请考虑接受答案。请参阅的一节,了解有关如何执行此操作以及为什么它对应用程序有用的详细信息。感谢mbask,我刚刚回顾了此操作,并意识到它“与众不同”。我喜欢用另一种方式来看待这件事。谢谢姆巴斯克,我只是回顾这件事,才意识到这是“不同的”。我喜欢用另一种方式来看待这个问题。