首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用r中的日期变量获取最近的观察结果。

使用r中的日期变量获取最近的观察结果。
EN

Stack Overflow用户
提问于 2020-07-21 18:33:38
回答 2查看 710关注 0票数 2

我使用R创建一个包含来自另一个表的数据的表,我正在处理下一个变量:

代码语言:javascript
运行
复制
-PRODUCT ID 
-CLASIFICATION
-DATE

例如,我的原产地表:

代码语言:javascript
运行
复制
product id   Clasification   Date
10000567        B+         12-12-2020
10000123        C+         26-11-2020
10000567        A+         02-11-2020
10000222        A+         09-10-2020
10000123        B++        21-09-2020
10000222        A++        10-09-2020

事情是,我需要得到最近的分类,我的产品id的原因是一个动态的领域,它可以永远改变。产品标识的一行。

任何帮助都会很好。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-21 19:10:25

您可以在slice_max()中使用dplyr (在1.0.0版本之后取代top_n() )来选择最近的日期。

代码语言:javascript
运行
复制
df %>%
  mutate(Date = as.Date(Date, "%d-%m-%Y")) %>%
  group_by(product_id) %>%
  slice_max(Date, n = 1) %>% 
  ungroup()

# # A tibble: 3 x 3
#   product_id Clasification Date      
#        <int> <chr>         <date>    
# 1   10000123 C+            2020-11-26
# 2   10000222 A+            2020-10-09
# 3   10000567 B+            2020-12-12

数据

代码语言:javascript
运行
复制
df <- structure(list(product_id = c(10000567L, 10000123L, 10000567L, 
10000222L, 10000123L, 10000222L), Clasification = c("B+", "C+", 
"A+", "A+", "B++", "A++"), Date = c("12-12-2020", "26-11-2020", 
"02-11-2020", "09-10-2020", "21-09-2020", "10-09-2020")), class = "data.frame", row.names = c(NA, -6L))
票数 3
EN

Stack Overflow用户

发布于 2020-07-21 18:41:41

假设您的日期没有排序,下面这样的内容应该可以工作:

代码语言:javascript
运行
复制
library(dplyr)
df %>%
 arrange(desc(Date)) %>%
 group_by(id) %>%
 slice(1) %>%
 ungroup()
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63020956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档