我尝试在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?
中执行日期格式转换答案 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"