几个月没有前导零

And*_*ell 4 format r date

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

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

出: 2/9/5

或0只删除一个月:

出: 2/9/05

Ric*_*ven 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"
Run Code Online (Sandbox Code Playgroud)

但请记住,在不同世纪的日期矢量上执行此操作会让您稍后再回头看它们会让事情变得有些混乱.

  • 那么2005-10-20呢? (2认同)

Sve*_*ein 2

解决方案sub

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