嵌入 mutate 函数 (::dplyr) 的 slide_index_dbl (::slider) 引起的错误信息

问题描述 投票:0回答:0

我有这个数据框,其中包含“Person”、“NoShow”和“date”列。:

df <- data.frame(Person = c('334','334','334','334','334','334','334','334','334'), 
                 NoShow = c(1,1,1,0,1,1,0,1,0), 
                 date = c('2014-01-01','2016-06-01','2017-01-01','2018-05-01','2021-01-01','2021-06-03','2022-04-14','2022-04-14','2023-05-03')
)

要创建一个变量来计算当前日期两年内未出现的次数,我运行以下代码:

library(lubridate); library(dplyr); library(slider)
df %>%
  mutate(date = ymd(date)) %>%
  group_by(Person) %>%
  arrange(Person, date) %>% # slider unfortunately requires dates be sorted
  mutate(no_shows_next2yr = slide_index_dbl(
    NoShow, date, sum, .before = days(-1), .after = years(2)
  ))

这在这个假数据集中工作得很好。当我尝试在我的真实数据上应用完全相同的代码(具有完全相同的变量)时,我收到此错误消息:

Error in `mutate()`:
! Problem while computing `no_shows_next2yr = slider::slide_index_dbl(...)`.
ℹ The error occurred in group 2326: Person = "456".
Caused by error in `slider::slide_index_dbl()`:
ℹ In locations: 5
! Endpoints generated by `.after` must be in ascending order.

我检查了错误消息中的人员 ID (456),但我无法弄清楚为什么这不起作用。变量“Person”和“date”均按升序排列。

r dplyr slider mutate
© www.soinside.com 2019 - 2024. All rights reserved.