Fish_ID | 实例 | 成功 | 第一次成功 | Inst_Diff |
---|---|---|---|---|
1 | 0 | 0 | 0 | -2 |
1 | 1 | 0 | 0 | -1 |
1 | 2 | 1 | 1 | 0 |
1 | 3 | 0 | 0 | 1 |
1 | 4 | 1 | 0 | 2 |
1 | 5 | 0 | 0 | 3 |
results %>%
group_by(Fish_ID) %>%
mutate(Inst_Diff = Instance- Instance[First_Success==1])
我想创建一个 Inst_Diff 列。使用第一次成功等于 1 的实例编号,则“Inst_Diff”等效于:(实例)-(第一次成功的实例)。我有不止一个 Fish_ID。我尝试在上面编写代码,但它给出了一个错误。我会提出你的建议。谢谢!
使用
first
的方法
library(dplyr)
df %>%
mutate(Inst_Diff = Instance - first(Instance[Success == 1]), .by = Fish_ID)
Fish_ID Instance Success First_Success Inst_Diff
1 1 0 0 0 -2
2 1 1 0 0 -1
3 1 2 1 1 0
4 1 3 0 0 1
5 1 4 1 0 2
6 1 5 0 0 3