仅使用月份和年份更改日期格式

时间:2018-09-06 11:53:08

标签: r date format

我有一列的日期格式如下:

yyyymm (e.g. 201809)

我希望它们的格式如下:

mm.yyyy (e.g. 09.2018)

我尝试过:

FF5factors$date <- strptime(FF5factors$date, format= "%Y%m")
format(FF5factors$date, format="%m.%Y")

但是它仅返回NA个值。

2 个答案:

答案 0 :(得分:3)

那又怎么样:

d <- '201809'
format(as.Date(d,'%Y%M'),'%m.%Y')
[1] "09.2018"

答案 1 :(得分:2)

这里有一些替代方法。该问题未提供可重复形式的日期,因此我们假定下面的第一行,尽管前4个选择也可以与date <- "201809"date <- factor(201809)一起使用。

date <- 201809

# 1
sub("(....)(..)", "\\2.\\1", date)
## [1] "09.2018"

# 2
library(zoo)
format(as.yearmon(format(date), "%Y%m"), "%m.%Y")
## [1] "09.2018"

# 3
paste(substr(date, 5, 6), substr(date, 1, 4), sep = ".")
## [1] "09.2018"

# 4
format(as.Date(paste0(date, "01"), "%Y%m%d"), "%m.%Y")
## [1] "09.2018"

# 5
sprintf("%02d.%d", date %% 100, date %/%100)
## [1] "09.2018"