dplyr 如何进行按行条件变异操作

dplyr how to do the rowwise conditional mutate operation

我想在鸢尾花 table 上增加一列,以便在同一物种中,第一行是 NA,如果 Petal.Width 与最后一行相同,则其余行是 1行(右上方的行),如果 Petal.Width 与最后一行不同,则为 0。

如何使用 dplyr 实现此目的?需要更改下面的列。

   Sepal.Length Sepal.Width Petal.Length Petal.Width Species Change
1          5.1         3.5          1.4         0.2  setosa   NA
2          4.9         3.0          1.4         0.2  setosa   0
3          4.7         3.2          1.3         0.2  setosa   0
4          4.6         3.1          1.5         0.2  setosa   0
5          5.0         3.6          1.4         0.2  setosa   0
6          5.4         3.9          1.7         0.4  setosa   1

dplyr 有一个 lag() 函数:

 iris %>% group_by(Species) %>% 
   mutate(Change = ifelse(lag(Petal.Width)==Petal.Width,0,1))

# A tibble: 150 x 6
# Groups:   Species [3]
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species Change
          <dbl>       <dbl>        <dbl>       <dbl>  <fctr>  <dbl>
 1          5.1         3.5          1.4         0.2  setosa     NA
 2          4.9         3.0          1.4         0.2  setosa      0
 3          4.7         3.2          1.3         0.2  setosa      0
 4          4.6         3.1          1.5         0.2  setosa      0
 5          5.0         3.6          1.4         0.2  setosa      0
 6          5.4         3.9          1.7         0.4  setosa      1
 7          4.6         3.4          1.4         0.3  setosa      1
 8          5.0         3.4          1.5         0.2  setosa      1
 9          4.4         2.9          1.4         0.2  setosa      0
10          4.9         3.1          1.5         0.1  setosa      1