R-为向量中的每个元素找到满足不等式的向量中的第一个元素/位置

R-为向量中的每个元素找到满足不等式的向量中的第一个元素/位置,r,R,假设我有一个向量Y。如果我想知道Y大于4的地方,我可以使用哪个(Y>4),函数位置的东西,等等。但是,现在我有一个向量X,我想为X的每个元素X获得一个元素哪个(Y>X)的向量。我可以用一个循环,但是对于大向量X,我想应用它,这是非常低效的 实现我想要的东西的更有效、矢量化的方法是什么?您可以使用基本软件包中的外部: 如果需要满足Y>X[i]的所有索引的列表: ## Test data: Y <- c(3,6,7,2,9,6,12,5,2,8) X <- c(4,6,8) indic

假设我有一个向量Y。如果我想知道Y大于4的地方,我可以使用
哪个(Y>4)
,函数
位置的东西,等等。但是,现在我有一个向量X,我想为X的每个元素X获得一个元素
哪个(Y>X)
的向量。我可以用一个循环,但是对于大向量X,我想应用它,这是非常低效的


实现我想要的东西的更有效、矢量化的方法是什么?

您可以使用
基本
软件包中的
外部

如果需要满足
Y>X[i]
的所有索引的列表:

## Test data:
Y <- c(3,6,7,2,9,6,12,5,2,8)
X <- c(4,6,8)

indicesList <- apply(X = outer(Y, X, '>'), MARGIN = 2, FUN = which)

> indicesList
[[1]]
[1]  2  3  5  6  7  8 10

[[2]]
[1]  3  5  7 10

[[3]]
[1] 5 7
firstIndicesVec <- apply(X = outer(Y, X, '>'), MARGIN = 2, FUN = function(x) min(which(x)))

> firstIndicesVec
[1] 2 3 5

sapply(X,函数(X)(Y>X))
apply
快?我发现后者和for循环之间没有区别,因此提出了这个问题。