在R中转换日期格式

时间:2016-11-20 03:58:11

标签: r date

我尝试在R中进行日期格式转换,遇到以下问题:我的原始日期是

"Dec-2011"

我想成为

2011-12

然后我试了

as.Date("Dec-2011",format = "%b-%Y")

它产生NA

我做了一些搜索,我发现如果你输入

as.Date(gsub("^", "01-", "Dec-2011"), format="%d-%b-%Y")

它会给你

2011-12-01

我理解“gsub”这里的功能,它将“Dec-2011”中的所有“^”替换为“01-”。但是,正如你在“Dec-2011”中看到的那样,没有“^”,我在想它是应该是“01-”还是“-01”?我有点不解。 “gsub”在这里做了什么?我应该如何在R?

中执行日期格式转换

1 个答案:

答案 0 :(得分:0)

^是表示字符串开头的元字符。在gsub示例中,pattern给出了replacement(" 01 - ")的位置,因此它仅在开始时替换。假设,如果我们删除^,它将替换" 01 - "在每个角色之后

gsub("", "01-", "Dec-2011")
#[1] "01-D01-e01-c01--01-201-001-101-101-"

gsub("^", "01-", "Dec-2011")
#[1] "01-Dec-2011"

gsub表示全局替换,但我们也可以用sub替换它一次

sub("", "01-", "Dec-2011")
#[1] "01-Dec-2011"

对于这种情况,使用paste

可能更容易
paste0("01-", "Dec-2011")
#[1] "01-Dec-2011"