几个月没有前导零

时间:2014-12-20 21:09:59

标签: r date format

R中的

format()没有明显的选项来显示没有前导0的月份(与年份相同)。有没有其他方法可以得到这个结果?该解决方案应允许用户灵活地选择是仅在当天或月份或年份或任何组合中省略0。

in:as.Date("2005-09-02")

out:2/9/5

或0仅在一个月内删除:

out:2/9/05

3 个答案:

答案 0 :(得分:6)

你可以试试这个。

x <- as.Date(c("2005-09-02", "2005-10-20", "2010-10-20"))

gsub("0(\\d)", "\\1", format(x, "%d/%m/%y"))
# [1] "2/9/5"    "20/10/5"  "20/10/10"

但请记住,在不同世纪的日期矢量上执行此操作会让您稍后再回过头来查看它们会让您感到有些困惑。

答案 1 :(得分:2)

sub的解决方案:

x <- as.Date("2005-09-02")
sub("..0?(.+)-0?(.+)-0?(.+)", "\\3/\\2/\\1", x)
# [1] "2/9/5"

答案 2 :(得分:-3)

您可以执行此操作,但需要将其设置为字符,因为该格式不是实际的日期格式。

X = "2005-09-02"
date = paste(substr(X,10,10),"/",substr(X,7,7),"/",substr(X,4,4),sep='')