【发布时间】:2021-08-18 06:46:42
【问题描述】:
我有一个名称和年份的数据框,其中有一个虚拟变量,用于判断名称是否出现在一年内。
我正在尝试创建一个告诉我的数据框
-
- 当年出现的名字总数,以及
-
- 当年出现但前一年未出现的数量。
在下面的示例中,2017 年只有一个人(特里)出现,而前一年没有,所以总数和新人都是 1。2018 年出现了三个人,但只有两个人是新人,因为特里出现在前一年。如果有人在 2017 年和 2019 年出现,但在 2018 年没有出现,则应将其归类为 2019 年的新人。
示例
Name x2017 x2018 x2019
1 Terry 1 1 0
2 Sam 0 0 1
3 Nic 0 1 1
4 Sarah 0 1 1
代码
data.frame(
Name = c("Terry", "Sam", "Nic", "Sarah"),
x2017 = c(1, 0, 0, 0),
x2018 = c(1, 0, 1, 1),
x2019 = c(0, 1, 1, 1)
)
我正在尝试创建的输出
Year Total New
1 2017 1 1
2 2018 3 2
3 2019 3 1
我尝试过过滤和使用行求和,但我觉得有一个我不知道的函数可以做到这一点。
谢谢!
【问题讨论】:
标签: r dplyr tidyverse rolling-computation accumulate