我正在使用类似于以下块中可用的数据集创建lubridate
区间向量:
dat <- readr::read_rds(url("https://github.com/mienkoja/stack_stash/blob/master/dat.rds?raw=true"))
dat_mod <- dplyr::mutate(dat, interval = lubridate::interval(lubridate::ymd(start_combo)
,lubridate::ymd(stop_combo)))
但是,如果我尝试通过dplyr
过滤对象,则会返回一个意外的间隔:
dplyr::filter(dat_mod, id == 7000)
## A tibble: 1 x 4
# id start_combo stop_combo interval
# <int> <dbl> <dbl> <S4: Interval>
#1 7000 20170802 20170816 2016-10-11 UTC--2016-10-25 UTC
实际上,每个间隔(通过dplyr::filter
查看)似乎与预期间隔的长度相同,但都锚定(错误地)到2016-10-11 UTC。
我怀疑这是一个dplyr::filter
错误,因为我可以用括号表示法搜索并获得预期的结果。
dat_mod[dat_mod$id == 7000, ]
## A tibble: 1 x 4
# id start_combo stop_combo interval
# <int> <dbl> <dbl> <S4: Interval>
#1 7000 20170802 20170816 2017-08-02 UTC--2017-08-16 UTC
然而,在我报告错误之前,我想我会到这儿来看看我是否遗漏了某些东西,这种行为是设计的。
问题:是否可以使用dplyr::filter
并检索实际的lubridate
间隔(通过&#34;括号表示法检索&#34;)?
更新:由于没有人跳过这个,我将假设这是一个暂时的错误。请参阅GitHub上发布的以下问题:https://github.com/tidyverse/dplyr/issues/3206
一旦我获得修复(通过GitHub)或解决方案(通过SO),我将在这两个地方进行更新。