我写了以下代码来更改日期格式:
m <- as.Date("30-sep-15","%d-%b-%y")
l <- format(m,"%Y%m%d")
结果:
l is 20150930
现在,当我检查结果对象的类时,就是l
class(l)
"character"
类和模式更改为字符。
我们可以在此对象上保留Date类,并仍然以下列格式显示此对象:20150930
??
答案 0 :(得分:5)
您可以使用关联的print
方法定义自己的S3类:
m <- as.Date("30-sep-15","%d-%b-%y")
m
prettyDate <- function(x) {
if (!inherits(x, "Date")) stop("Only objects of class 'Date' can be prettyDates.")
class(x) <- c("prettyDate", class(x))
x
}
m <- prettyDate(m)
print.prettyDate <- function(x, ...) {
stopifnot(inherits(x, "Date"))
print.default(format(x, "%Y%m%d"))
}
m
#[1] "20150930"
class(m)
#[1] "prettyDate" "Date"
如果您还希望在data.frames中打印格式,则还需要定义format
方法。
Date
方法仍将用于该对象:
as.POSIXct(m)
#[1] "2015-09-30 02:00:00 CEST"