【发布时间】:2018-12-08 18:22:24
【问题描述】:
我正在使用 dplyr 来操作数据。我有两列:x 和 y。在第三列(比如 z)中,我希望在所有 x 列中都有 y 的第一个索引。
例如:
对于第一行,我得到 4,因为 7 在 x 中的第 4 位。
所以我试过了
df <- df %>%
mutate(z = which (x==y)[1])
但是比较是按元素进行的(即我在 z 中只得到了五)。因此我的问题是:如何在 dplyr mutate 中区分要采用元素的向量和要作为向量的向量?
【问题讨论】:
-
可能是
mutate(z = match(y, x))。只要所有的 y 肯定都在 x 中。 -
谢谢!这确实适用于这种特定情况! (也让我意识到 z 的第二个值应该是 3,而不是 2!)。但是更一般的问题呢?