首页 > 解决方案 > 仅保留第一个值(对于特定值),但为具有相同值的所有其他行创建零

问题描述

 post_date   post_age  former_customer  *former_customer_new*
2016-11-27     1309         20.01632        20.01632 
2016-11-27     1309         20.01632         0
2016-11-26     1310         22.98056        22.98056
2016-11-26     1310         22.98056         0
2016-11-26     1310         22.98056         0
2016-11-26     1310         22.98056         0

我正在寻找创建最后一列的代码,其中每天的值仅显示在第一行中,但对于当天相同的其他行表示 0。最后,我想创建一个累积变量,但每天只计算一次而不是多次。如果有更好的解决方案(可能有一个),请告诉我。

标签: r

解决方案


用这个

library(dplyr)
df %>% group_by(post_date) %>% mutate(former_cust_new = ifelse(row_number() == 1, former_customer, 0)) %>% ungroup()

为了演示,请添加一些数据


推荐阅读