我本质上是在寻找一个“next”语句,我可以在dplyr ifelse语句中使用它,尽管其他R替代方案也是受欢迎的。
下面是到目前为止的代码:
df1 <- data%>%
arrange(Var1, Var2, Var3, Var4, Var5)%>%
group_by(Var1)%>%
distinct(Var1, Var2, Var3, Var4, Var5)%>%
mutate(Var6 = ifelse(Var4 == "COMPLETE", row_number(), row_number()+1))
输出为(相关版本)
| Var4 | Var6 |
| ------------ | -------------|
| COMPLETE | 1 |
**| INCOMPLETE | 3 |**
| COMPLETE | 3 |
| COMPLETE | 4 |
| COMPLETE | 5 |
**| INCOMPLETE | 7 |**
| COMPLETE | 7 |
| COMPLETE | 8 |
| COMPLETE | 9 |
预期输出为
| Var4 | Var6 |
| ------------ | -------------|
| COMPLETE | 1 |
**| INCOMPLETE | 2 |**
| COMPLETE | 2 |
| COMPLETE | 3 |
| COMPLETE | 4 |
**| INCOMPLETE | 5 |**
| COMPLETE | 5 |
| COMPLETE | 6 |
| COMPLETE | 7 |
总之,我的目标是当Var4 == INCOMPLETE时,我可以忽略该行并继续使用row_number()。
3条答案
按热度按时间u0njafvf1#
这里有一个方法
tidyverse
数据
kqhtkvqz2#
我们可以使用
cumsum
和replace
或case_when
:von4xj4u3#
谢谢你的回答。我不能让你的答案工作,但它帮助我工作了: