管道链期间的日期减去 1 天
date minus 1 day during pipe chain
library(tidyverse)
library(lubridate)
我创建了一个变量training_date:
training_date <- paste0(year(Sys.Date()), "-", format.Date(Sys.Date(), "%m"), "-01")
training_date
[1] "2020-04-01"
在我的代码中的其他地方,我想使用它并在管道链中减去一天:
month_end <- training_date %>% as_date() - 1
month_end %>% str
Date[1:1], format: "2020-03-31"
我希望月末只是一个字符串。
我可以这样做:
month_end <- month_end %>% toString()
> month_end %>% str()
chr "2020-03-31"
但我宁愿一次完成。尝试过:
month_end <- training_date %>% as_date() - 1 %>% toString()
Error in unclass(as.Date(e1)) - e2 :
non-numeric argument to binary operator
然后尝试:
month_end <- training_date %>% (as_date() - 1) %>% toString()
Error in inherits(x, c("yearmon", "yearqtr")) :
argument "x" is missing, with no default
然后尝试:
month_end <- training_date %>% (as_date(.) - 1) %>% toString()
Error in as_date(.) : object '.' not found
然后尝试:
month_end <- training_date %>% (as_date(.) - 1) %>% toString(.)
Error in as_date(.) : object '.' not found
然后尝试:
month_end <- training_date %>% as_date(.) - 1 %>% {toString()}
Error in paste(x, collapse = ", ") :
argument "x" is missing, with no default
然后尝试:
month_end <- training_date %>% as_date() - 1 %>% {toString(.)}
Error in unclass(as.Date(e1)) - e2 :
non-numeric argument to binary operator
如何获取顶部定义的变量 training_date,将其转回日期,减去一天,然后将其转回单个链中的字符串?
-1
是问题所在。
这个有效:
training_date %>% as_date() %>% toString()
#[1] "2020-04-01"
但这不是
training_date %>% as_date() - 1 %>% toString()
Error in unclass(as.Date(e1)) - e2 :
non-numeric argument to binary operator
所以尝试:
training_date %>% {as_date(.) - 1} %>% toString()
#[1] "2020-03-31"
library(tidyverse)
library(lubridate)
我创建了一个变量training_date:
training_date <- paste0(year(Sys.Date()), "-", format.Date(Sys.Date(), "%m"), "-01")
training_date
[1] "2020-04-01"
在我的代码中的其他地方,我想使用它并在管道链中减去一天:
month_end <- training_date %>% as_date() - 1
month_end %>% str
Date[1:1], format: "2020-03-31"
我希望月末只是一个字符串。 我可以这样做:
month_end <- month_end %>% toString()
> month_end %>% str()
chr "2020-03-31"
但我宁愿一次完成。尝试过:
month_end <- training_date %>% as_date() - 1 %>% toString()
Error in unclass(as.Date(e1)) - e2 :
non-numeric argument to binary operator
然后尝试:
month_end <- training_date %>% (as_date() - 1) %>% toString()
Error in inherits(x, c("yearmon", "yearqtr")) :
argument "x" is missing, with no default
然后尝试:
month_end <- training_date %>% (as_date(.) - 1) %>% toString()
Error in as_date(.) : object '.' not found
然后尝试:
month_end <- training_date %>% (as_date(.) - 1) %>% toString(.)
Error in as_date(.) : object '.' not found
然后尝试:
month_end <- training_date %>% as_date(.) - 1 %>% {toString()}
Error in paste(x, collapse = ", ") :
argument "x" is missing, with no default
然后尝试:
month_end <- training_date %>% as_date() - 1 %>% {toString(.)}
Error in unclass(as.Date(e1)) - e2 :
non-numeric argument to binary operator
如何获取顶部定义的变量 training_date,将其转回日期,减去一天,然后将其转回单个链中的字符串?
-1
是问题所在。
这个有效:
training_date %>% as_date() %>% toString()
#[1] "2020-04-01"
但这不是
training_date %>% as_date() - 1 %>% toString()
Error in unclass(as.Date(e1)) - e2 : non-numeric argument to binary operator
所以尝试:
training_date %>% {as_date(.) - 1} %>% toString()
#[1] "2020-03-31"