我有一个数据集,其中包含每个日期的许多唯一标识符,例如
df <- data.frame(date = as.Date(c("2016-01-01", "2016-01-01", "2016-01-02", "2016-01-02")),
ids = c(3, 4, 1, 3))
然后,我想对这些信息进行总结,以获取当前日期出现的新的唯一ID的数量。例如,在1月1日有两个唯一ID(3和4)。但是在1月2日,只有一个新的唯一ID(1)。因此,结果数据框应如下所示:
date n_new_unique_ids
2016-01-01 2
2016-01-02 1
这可能dplyr
吗?我看了看,lag
但是在这种情况下,固定的滞后大小没有意义。也许还有另一个包装?
一种选择是duplicated
从数据集中删除所有“ id”
df %>%
filter(!(duplicated(ids)|duplicated(ids, fromLast=TRUE)))
# date ids
#1 2016-01-01 2
#2 2016-01-02 3
使用更新的数据
df %>%
arrange(date, ids) %>%
filter(!duplicated(ids)) %>%
group_by(date) %>%
summarise(n_unique_ids = n())
# date n_unique_ids
# <date> <int>
#1 2016-01-01 2
#2 2016-01-02 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句