【发布时间】:2019-04-21 17:35:41
【问题描述】:
我想根据前一列和按函数分组创建一个名为年龄的新列。数据集如下:
tid<- c(1,2,3,4, 1,2,3,4,1,2,3,4)
active<- c(0,1,0,4, 0,0,0,1,0,0,1,0)
person<- c('John', 'John','John', 'John', 'Emma', 'Emma','Emma','Emma', 'Edward', 'Edward', 'Edward', 'Edward')
df<- data.frame(tid, active, person)
我想创建一个人第一次活跃时从 0 开始的年龄,即第一次活跃的值变得大于 0,然后递增地为下一条记录添加一个值。有什么建议?
我期望输出如下:
name age
John 0
John 0
John 1
John 2
Emma 0
Emma 0
Emma 0
Emma 0
Edward 0
Edward 0
Edward 0
Edward 1
【问题讨论】:
-
你试过什么?请举例说明您尝试过的一些策略/代码
-
约翰不应该是 0,0,1,1 吗?
-
不应该是 0,0,1,2 因为他的年龄将在后期递增到下一个值,即在 tid 1 中他是 0 ,2 他仍然是 0 ,当他变得活跃时,他在 3 中获得 1,在 4 中获得 2