R从给定的不完整日期中删除月份

R从给定的不完整日期中删除月份,r,R,我有这样一个字符串:year=“2011-01”、“2011-02”、“2011-03”。。。。。一直到“2015-012” 它们代表2011年1月,2011年2月…类似的东西 为了简单起见,我只想说 year1您可以使用gsub,这是一个正则表达式替换函数: sub("-[0-9]+$", "", year1) 我们也可以使用substr substr(year1, 1,4) #[1] "2011" "2011" "2011" 或者我们可以使用library(zoo)中的as.yearmo

我有这样一个字符串:
year=“2011-01”、“2011-02”、“2011-03”
。。。。。一直到
“2015-012”

它们代表2011年1月,2011年2月…类似的东西

为了简单起见,我只想说


year1您可以使用
gsub
,这是一个正则表达式替换函数:

sub("-[0-9]+$", "", year1)

我们也可以使用
substr

substr(year1, 1,4)
#[1] "2011" "2011" "2011"
或者我们可以使用
library(zoo)
中的
as.yearmon
转换为
yearmon
类,然后使用
格式提取“年”

library(zoo)
format(as.yearmon(year1), '%Y')
#[1] "2011" "2011" "2011"
通过分裂,

> unlist(lapply(strsplit(year1, "-"), function(x){ x[1]}))
[1] "2011" "2011" "2011"

顺便问一下,您知道如何从给定日期中删除年份吗?i、 例如,如果您需要月份
substr(year1,6,7)
格式(如.yearmon(year1),“%m”),我需要01,02,03