r - 如何使用 group_by() 显示最早日期
问题描述
我有一个名为master_table
488 行的 9 个变量的小标题。与问题相关的两个变量是wrestler_name
和reign_begin
。wrestler_name
某些值有多次重复。我想将行减少为每个唯一wrestler_name
值的一个实例,由最早的reign_begin
日期值决定。示例标题链接如下:
因此,在 tibble 的这一部分中,最终目标将是只有 5 行而不是 11 行,例如,单个 Ric Flair 行的统治开始日期为 1981 年 9 月 17 日,是四个中最早的Ric Flairreign_begin
价值观。
我认为这group_by
是最有意义的,但我越想它并尝试使用它,我就越认为它可能不是正确的道路。以下是我尝试过的一些事情:
group_by(wrestler_name) %>%
tibbletime::filter_time(reign_begin, 'start' ~ 'start')
#Trying to get it to just filter the first date it finds for each wrestler_name group, but did not work
master_table_2 <- master_table %>%
group_by(wrestler_name) %>%
filter(reign_begin)
#I know that this would not work, but its the place I'm basically stuck
编辑:根据请求,这里是head(master_table)
,其中包含略有不同的数据,但它仍然表达了问题:
1 Ric Flair NWA World Heavyweight Championship 40 8 69 1991-01-11 1991-03-21
2 Sting NWA World Heavyweight Championship 39 1 188 1990-07-07 1991-01-11
3 Ric Flair NWA World Heavyweight Championship 38 7 426 1989-05-07 1990-07-07
4 Ricky Steamboat NWA World Heavyweight Championship 37 1 76 1989-02-20 1989-05-07
5 Ric Flair NWA World Heavyweight Championship 36 6 452 1987-11-26 1989-02-20
6 Ronnie Garvin NWA World Heavyweight Championship 35 1 62 1987-09-25 1987-11-26
city_state country
1 East Rutherford, New Jersey USA
2 Baltimore, Maryland USA
3 Nashville, Tennessee USA
4 Chicago, Illinois USA
5 Chicago, Illinois USA
6 Detroit, Michigan USA
解决方案
对数据库执行此操作的常用方法涉及连接:
earliest <- master_table %>%
group_by(wrestler_name) %>%
summarise(reign_begin = min(reign_begin)
master_table_2 <- master_table %>%
inner_join(earliest, by = c("wrestler_name", "reign_begin"))
不需要过滤器,因为内部连接仅包括重叠。
数据库通常需要上述方法,因为它们如何计算摘要。但是正如@Martin_Gal 建议的那样,R 可以以不同的方式处理这个问题,因为它将数据存储在内存中。
master_table_2 <- master_table %>%
group_by(wrestler_name) %>%
filter(reign_begin == min(reign_begin))
您可能还会发现lubridate
安装软件包有助于处理日期。
推荐阅读
- javascript - 有什么方法可以在 Javascript 中删除这些引号?
- python - 如何将具有元组的列表列表(好像来自 word2vec most_similar 结果)分成单独的变量?
- c# - 如何基于现有 DbContext 和实体框架为 Docker 映像创建 SQL Server 数据库方案?
- python - 根据另一个数据框中的字符串计数分配值
- python-3.x - 是否可以使用 tf.GradientTape() 创建一个可以产生二阶、三阶或 n 阶梯度的函数?
- c# - C# ASP.NET MVC:开发具有正在运行的任务和 ASP.NET MVC Web UI 来控制/监视它的应用程序
- android - 从 onTouchEvent 函数获取 Android 中 SurfaceView 的像素
- python - 如何解决“int”对象不可调用错误
- windows - ism 文件中设置的 INSTALLSOURCE 属性在哪里
- flutter - 有条件的颜色变化 Dart Flutter