如何比较 2 tibbles 之间的日期?

How to compare date between 2 tibbles?

mydf<-data.frame(x=as.Date("2017-1-1"))
mydf[1,1]-as.Date("2017-10-16")

Time difference of -288 days

mytb<-tibble(x=as.Date("2017-1-1"))
mytb[1,1]-as.Date("2017-10-16")

Error in mytb[1, 1] - as.Date("2017-10-16") : non-numeric argument to binary operator In addition: Warning message: Incompatible methods ("Ops.data.frame", "-.Date") for "-"

如何比较tibble中的日期?我有一个解决方案:将tibble转换为dataframe,但是有没有更可行的想法?

data.frametibble/data_frame 之间的行为可能存在差异。使用 data.framedrop = TRUE

mydf[1,1]
#[1] "2017-01-01"

data.frame 更改为 vector 当存在单个 row/column 等的子集时

但是,tibble

却不是这样
mytb[1,1]
# A tibble: 1 x 1
#  x         
#   <date>    
#1 2017-01-01

还是tibble。所以我们需要用 $[[

来提取它
mytb[['x']][1]
#[1] "2017-01-01"

tidyverse 选项为 pull

mytb %>%
     pull(x) %>%
     magrittr::extract(1) %>%
     magrittr::subtract(as.Date("2017-10-16"))
#Time difference of -288 days