R 按最新条目分组数据

R 按最新条目分组数据,r,group-by,R,Group By,我有以下数据 pt_id <- c(1,1,1,1,1,2,2,2,3,3,3,3,3,4,4,4,4) visit_id <- c(11,12,13,14,15,21,22,23,31,32,33,34,35,41,42,43,44) visit <- c(2019, 2019, 2019, 2019, 2020, 2019, 2019, 2020, 2019, 2019, 2019, 2019, 2020, 2019, 2020, 2020, 2020) mydata &l

我有以下数据

pt_id <- c(1,1,1,1,1,2,2,2,3,3,3,3,3,4,4,4,4)
visit_id <- c(11,12,13,14,15,21,22,23,31,32,33,34,35,41,42,43,44)
visit <- c(2019, 2019, 2019, 2019, 2020, 2019, 2019, 2020, 2019, 2019, 2019, 2019, 2020, 2019, 2020, 2020, 2020)
mydata <- data.frame(pt_id, visit_id, visit)
mydata

谢谢

我将对新变量使用
visit\u id
,而不是
order
,因为
order
是base R中的一个函数

mydata_lstvst <- mydata %>%
    arrange(pt_id, visit, .by_group = TRUE) %>% 
    group_by(pt_id) %>% 
    mutate(order = n() - row_number() + 1) %>% 
    ungroup() %>% 
    arrange(pt_id, visit, desc(order)) %>% 
    filter(order == 1)

mydata_lstvst
mydata_lstvst%
安排(pt\U id,访问,.by\U group=TRUE)%>%
分组依据(pt\U id)%>%
变异(顺序=n()-行号()+1)%>%
解组()%>%
安排(患者id、就诊、描述(订单))%>%
过滤器(顺序==1)
mydata_lstvst

编辑:已更新以处理评论(访问时过滤id==1)。

@Eric Krantz我已编辑以添加所需的输出。谢谢!我现在正试图编写代码,通过“pt_id”将数据分组为值为1的“visit_n”。我无法在注释中写入所需的输出。让我知道你是否可以为它编码。将
%%>%filter(order==1)
添加到该代码的末尾。按顺序获取此错误
error==1:比较(1)仅适用于原子类型和列表类型
因此我为visit做了一个子集,值为1:)
mydata\u vst\u 1ah,问题是我使用了
order
作为变量名,而您使用的是
visit\u id
order
是base R中的一个函数。它可以工作,但必须始终保持一致(
order
必须是df中的一个变量,否则R将尝试按函数名进行过滤)。
mydata_lstvst <- mydata %>%
    arrange(pt_id, visit, .by_group = TRUE) %>% 
    group_by(pt_id) %>% 
    mutate(order = n() - row_number() + 1) %>% 
    ungroup() %>% 
    arrange(pt_id, visit, desc(order)) %>% 
    filter(order == 1)

mydata_lstvst