提取出现值的第一行

时间:2018-08-20 20:57:14

标签: r dplyr

我有一个数据框,我想从我的过滤器中提取第一个值出现的行号。

例如:

Col1    Col2
  10       A
  22       A
  33       A
  44       B
  55       B
  46       B
  57       B

如何找出值B首次出现的行号?

在这种情况下,答案是4。

2 个答案:

答案 0 :(得分:1)

这将为您提供结果 which(df$Col2 == "B")[1]

答案 1 :(得分:1)

我们可以使用 match

match("B", df1$Col2)
# [1] 4

dplyr 方法(不确定最好的 dplyr 方法):

df1 %>% 
  mutate(rn = row_number()) %>% 
  filter(Col2 == "B") %>% 
  slice(1) %>% 
  pull(rn)
# [1] 4