R从给定的不完整日期中去掉月份

  • 本文关键字:日期
  • 更新时间 :
  • 英文 :


我有一个这样的字符串:year = "2011-01","2011-02","2011-03" .....一直到"2015-012"

它们像那样代表2011 Jan, 2011 Feb...等。

为简单起见,我只写

year1 <- c("2011-01","2011-02","2011-03")

我被要求返回一个四位数的代码(即。2011、2012、2013)等。

我该怎么做呢?

我们也可以使用substr

substr(year1, 1,4)
#[1] "2011" "2011" "2011"

或者我们可以从library(zoo)中使用as.yearmon转换为yearmon类,然后使用format提取'year'。

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

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

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

through split,

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

最新更新