r - 具有值的过滤因子
问题描述
我想过滤一个我有变量的基础id
,year
和value
。
structure(list(id = c(
70101L, 70101L, 70101L, 70102L, 70102L,
70102L, 70102L, 70102L, 70103L, 70103L, 70103L, 70103L, 70103L,
70103L, 70104L, 70104L, 70104L, 70104L, 70104L, 70104L
), year = c(
2013L,
2014L, 2015L, 2013L, 2014L, 2015L, 2016L, 2017L, 2013L, 2014L,
2015L, 2016L, 2017L, 2018L, 2013L, 2014L, 2015L, 2016L, 2017L,
2018L
), value = c(
4.68, 4.76, 5.14, 4.48, 4.71, 4.24, 5.13, 5.22,
5.13, 5.05, 4.96, 5.09, 8.09, 7.82, 3.57, 7.96, 1.83, 4.56, 11,
10.6
)), row.names = c(NA, -20L), class = "data.frame")
目标
过滤仅包含 2013 年到 2018 年完整信息的 id
id year value
<fct> <dbl> <dbl>
1 070103 2013 5.13
2 070103 2014 5.05
3 070103 2015 4.96
4 070103 2016 5.09
5 070103 2017 8.09
6 070103 2018 7.82
7 070104 2013 3.57
8 070104 2014 7.96
9 070104 2015 1.83
10 070104 2016 4.56
11 070104 2017 11.0
12 070104 2018 10.6
解决方案
这可以像这样实现:
library(dplyr)
d <- structure(list(id = c(
70101L, 70101L, 70101L, 70102L, 70102L,
70102L, 70102L, 70102L, 70103L, 70103L, 70103L, 70103L, 70103L,
70103L, 70104L, 70104L, 70104L, 70104L, 70104L, 70104L
), year = c(
2013L,
2014L, 2015L, 2013L, 2014L, 2015L, 2016L, 2017L, 2013L, 2014L,
2015L, 2016L, 2017L, 2018L, 2013L, 2014L, 2015L, 2016L, 2017L,
2018L
), value = c(
4.68, 4.76, 5.14, 4.48, 4.71, 4.24, 5.13, 5.22,
5.13, 5.05, 4.96, 5.09, 8.09, 7.82, 3.57, 7.96, 1.83, 4.56, 11,
10.6
)), row.names = c(NA, -20L), class = "data.frame")
d %>%
group_by(id) %>%
filter(all(c(2013:2018) %in% year))
#> # A tibble: 12 x 3
#> # Groups: id [2]
#> id year value
#> <int> <int> <dbl>
#> 1 70103 2013 5.13
#> 2 70103 2014 5.05
#> 3 70103 2015 4.96
#> 4 70103 2016 5.09
#> 5 70103 2017 8.09
#> 6 70103 2018 7.82
#> 7 70104 2013 3.57
#> 8 70104 2014 7.96
#> 9 70104 2015 1.83
#> 10 70104 2016 4.56
#> 11 70104 2017 11
#> 12 70104 2018 10.6
推荐阅读
- operands - 无法使用 Always Encrypt 将参数化存储过程发送回 SQL Server 2016。操作数类型冲突:
- c++ - static_cast const 对 void* 的引用
- visual-c++ - Visual Studio 在遇到断点时会冻结所有线程吗?
- excel - PowerBI:使用日期/时间和信息的工具提示
- php - 我第一次发送邮件php时延迟4分钟
- ios - 为什么无法在 iOS 上恢复应用内购买?
- java - 错误:java:错误:不支持发布版本 12
- sql - 在没有唯一键的重复记录中使用填充单元格值更新空单元格
- image - 通过代码多次更改精灵后如何保持图像大小和位置?
- android - ListView Flutter 中的 ListViews