填写常数值,当dplyr中满足条件时加1
Posted
技术标签:
【中文标题】填写常数值,当dplyr中满足条件时加1【英文标题】:Fill down constant value, add 1 when condition is met in dplyr 【发布时间】:2021-12-24 11:54:57 【问题描述】:我有一个如下的数据框:
step state
1 active
2 active
break
1 active
2 error
3 active
break
1 active
我想创建一个新列,在其中填充一个常量值 1,然后在每次达到“中断”行时将 1 添加到常量填充,这将使数据框看起来像。
step state n
1 active 1
2 active 1
break 2
1 active 2
2 error 2
3 active 2
break 3
1 active 3
任何使用 dplyr 或 base r 的解决方案都会有所帮助。谢谢
【问题讨论】:
【参考方案1】:我们可以将cumsum
与%in%
和mutate
一起使用。
library(dplyr)
dat2 <- dat %>%
mutate(n = cumsum(state %in% "break") + 1)
dat2
# step state n
# 1 1 active 1
# 2 2 active 1
# 3 2 break 2
# 4 1 active 2
# 5 2 error 2
# 6 3 active 2
# 7 3 break 3
# 8 1 active 3
数据
dat <- read.table(text = "step state
1 active
2 active
2 break
1 active
2 error
3 active
3 break
1 active",
header = TRUE)
【讨论】:
以上是关于填写常数值,当dplyr中满足条件时加1的主要内容,如果未能解决你的问题,请参考以下文章
excel如果满足条件时,输出一个单元格的数值,不满足时输出0,怎么弄
Python如何读取csv文件某一列的每一行数据,并判断该数值是不是满足条件?
python基于组合逻辑判断替换numpy数组中的满足条件的元素相等判断替换numpy数组中的指定数值为另一个数值大小判断替换numpy数组中大于指定阈值的数值为另一个值