【发布时间】:2021-07-17 11:34:45
【问题描述】:
在 R 中,我有一个元素 x 和一个向量 v。我想在v 中找到等于x 的元素的第一个索引。我知道这样做的一种方法是:which(x == v)[[1]],但这似乎效率极低。有没有更直接的方法?
对于奖励积分,如果x 是一个向量,是否有一个函数可以工作?也就是说,它应该返回一个索引向量,指示x 的每个元素在v 中的位置。
【问题讨论】:
-
由于 R 已针对向量进行了优化,
which(x == v)[[1]]并不是那么低效。这是一个应用于所有向量元素的比较 (==) 运算符和索引上的一个子集 (which)。而已。只要您没有在此功能上运行 10.000 次重复,就没有什么相关的。match和Position等其他解决方案返回的数据可能不如which多,但它们不一定更有效。 -
我的问题表明我更喜欢在 x 上进行矢量化的函数,而
which(x == v)[[1]]不是。 -
所以这是我在 SO 上提问时首先看到的内容
标签: r indexing match vectorization