如何从R中提取字符串中的年份和日期

时间:2014-03-14 08:19:20

标签: regex r date

我有一个带有条目的字符列表,例如“31DEC2005”。我想将年份提取为整数2005,以及日期月份“31DEC”。请建议一种方法。谢谢。

3 个答案:

答案 0 :(得分:2)

请参阅?substr

substr("31DEC2005",1,5)

自动化:

start<-c(1,3,6) 
stop<-c(2,5,9)
lapply(seq(1,3),function(i)substr("31DEC2005",start[i],stop[i]))

答案 1 :(得分:2)

我认为函数Date可能比正则表达式更好,请尝试:

as.Date("31DEC2005", "%d%b%Y")

答案 2 :(得分:1)

以下是将年份提取为整数的另一种方法:

x <- c("31DEC2005", "28FEB2012", "16JUL2002", "01JAN2007")
sub("[[:digit:]]+[[:alpha:]]+","", x)
#[1] "2005" "2012" "2002" "2007"

使用data.table包中的日期函数从@ bartektartanus的解决方案中提取日期月最简单:

y <- as.Date(x, "%d%b%Y")
library(data.table)
month(y)
#[1] 12  2  7  1
mday(y)
#[1] 31 28 16  1
paste(mday(y), month(y), sep = "-")
#[1] "31-12" "28-2"  "16-7"  "1-1"  

此解决方案也可以使用一年:

year(y)
#[1] 2005 2012 2002 2007