我有以下内容:
"0014-06-30"
我希望你能将其改为:
"0000-06-30"
我该如何在R中实现这个功能?
我所阅读的内容都非常着重于将字符串转换为日期,而不是改变日期内部的元素。
> x <- as.Date('0014-06-30')
> x
[1] "0014-06-30"
> library(lubridate)
> year(x)
[1] 14
> year(x) <- 0
> x
[1] "0000-06-30"
我试图通过将日期转换为as.Date
来获得特定的格式,但未成功。可以考虑使用regex
选项。
str1 <- "0014-06-30"
as.Date(str1)
#[1] "14-06-30"
sub('\\d{2}(?=-)', '00', str1, perl=TRUE)
#[1] "0000-06-30"
library(lubridate)
two_dig_year_cnvt <- function(z, year=2017){
y <- as.numeric(format(z, '%Y'))
range <- 2017 - 2000
year(z) <- ifelse(y >= 0 & y <= range, 2000 + y,
ifelse(y > range & y <= 200, 1900 + y, y))
z
}
x <- as.Date('0014-06-30'); x#[1] "14-06-30"
- akrun