如何比较 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.frame
与 tibble/data_frame
之间的行为可能存在差异。使用 data.frame
,drop = 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
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.frame
与 tibble/data_frame
之间的行为可能存在差异。使用 data.frame
,drop = 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