我可以得到今天的日期:
Sys.Date( )
但我怎么才能知道上周五的日期呢?我试过:
library(xts) date1 <- Sys.Date( ) to.weekly(date1 )
但这是一个错误。
yhqotfr81#
我想这应该行得通:
library(lubridate) Sys.Date() - wday(Sys.Date() + 1)
fnvucqvd2#
试试这个:
library(zoo) lastfri(Sys.Date())
其中lastfri与本动物园插图中的单线函数nextfrizoo quickref vignette相同,除了ceiling被floor替换。注意,lastfri是矢量化的,即它可以获取输入日期的向量并产生输出日期的向量。比如说,
lastfri
nextfri
ceiling
floor
library(zoo) Sys.Date() ## 2015-03-10 lastfri(Sys.Date() + 0:6) ## [1] "2015-03-06" "2015-03-06" "2015-03-06" "2015-03-13" "2015-03-13" ## [6] "2015-03-13" "2015-03-13"
因此,上周五是3月6日,我们一直得到3月6日,直到这一天提前到下周五,在这一点上,最后一个星期五是3月13日。下星期五是13号星期五。
twh00eeo3#
下面是一个函数,它可以找到一周中任何一天的最后一天:
getlastdate <- function(day) { library(lubridate) dates <- seq((Sys.Date()-7), (Sys.Date()-1), by="days") dates[wday(dates, label=T)==day] } getlastdate("Mon") # "2015-03-09"
以缩写格式输入星期几:即
Sun Mon Tues Wed Thurs Fri Sat
zpqajqem4#
上周五是4天前,因此:
Sys.Date()-4 > Sys.Date()-4 [1] "2015-03-06"
或者对于一周中的任何一天,使用base:
base
Sys.Date()-(as.POSIXlt(Sys.Date())$wday+2)
eh57zj3b5#
library(clock) dt <- as_naive_time(Sys.Date()) as.Date(time_point_shift(dt, weekday(6), which = "previous")) # sunday = 1 # OR use clock_weekdays friday <- weekday(clock_weekdays$friday) as.Date(time_point_shift(dt, friday, which = "previous"))
5条答案
按热度按时间yhqotfr81#
我想这应该行得通:
fnvucqvd2#
试试这个:
其中
lastfri
与本动物园插图中的单线函数nextfri
zoo quickref vignette相同,除了ceiling
被floor
替换。注意,lastfri
是矢量化的,即它可以获取输入日期的向量并产生输出日期的向量。比如说,因此,上周五是3月6日,我们一直得到3月6日,直到这一天提前到下周五,在这一点上,最后一个星期五是3月13日。
下星期五是13号星期五。
twh00eeo3#
下面是一个函数,它可以找到一周中任何一天的最后一天:
以缩写格式输入星期几:即
zpqajqem4#
上周五是4天前,因此:
或者对于一周中的任何一天,使用
base
:eh57zj3b5#