我想将 R 中日期对象中的不同日期替换为所有对象的同一天。
让我们举个例子。
date = structure(c(10961, 10990, 11018, 11046, 11060, 11088, 11116,
11144, 11214, 11235, 11249, 11263, 11305, 11354, 11382, 11423,
11452, 11480, 11494, 11508), class = "Date")
[1] "2000-01-05" "2000-02-03" "2000-03-02" "2000-03-30" "2000-04-13" "2000-05-11" "2000-06-08"
[8] "2000-07-06" "2000-09-14" "2000-10-05" "2000-10-19" "2000-11-02" "2000-12-14" "2001-02-01"
[15] "2001-03-01" "2001-04-11" "2001-05-10" "2001-06-07" "2001-06-21" "2001-07-05"
Run Code Online (Sandbox Code Playgroud)
我想得到:
[1] "2000-01-05" "2000-02-05" "2000-03-05" "2000-03-05" "2000-04-05" "2000-05-05" "2000-06-05"
[8] "2000-07-05" "2000-09-05" "2000-10-05" "2000-10-05" "2000-11-05" "2000-12-05" "2001-02-05"
[15] "2001-03-05" "2001-04-05" "2001-05-05" "2001-06-05" "2001-06-05" "2001-07-05"
Run Code Online (Sandbox Code Playgroud)
我所做的是:
sub("%d", "05", date, perl = TRUE)
Run Code Online (Sandbox Code Playgroud)
然而,这不起作用。我觉得错误就在于pattern我不知道如何把握刚刚的日子。
谁能帮我?
谢谢!
基础R:
date <- as.Date(sub("\\d{2}$", "05", date))
Run Code Online (Sandbox Code Playgroud)
包裹lubridate:
lubridate::day(date) <- 5
Run Code Online (Sandbox Code Playgroud)