从R中的字符串中提取和拆分数字和字符

时间:2014-10-03 06:16:04

标签: r string strsplit

我正在尝试从字符串中拆分提取和拆分数字和字符。我还想在每个字符串的末尾删除一些字符和数字。 例如,我有以下字符串。

dm<-c("2December2005MOMENT55", "3December2005ROYALS56", "1July2012ANGELS57")

我想将它们作为

Day Month    Year
2   December 2005
3   December 2005
1   July     2012

拆分并提取值并将它们放在不同的变量下。

我正在使用strsplit命令尝试此操作。但我无法继续前进。我真的很抱歉,我没有这方面的代码。

我希望能有任何命令或代码建议。谢谢!

2 个答案:

答案 0 :(得分:4)

  1. 转换为日期对象(格式'%d%B%Y'(根据提供的示例))
  2. 使用yearmdaymonth获取您想要的data.frame

  3. df <- data.frame(string = dm, date = as.Date(dm,format = '%d%B%Y'))
    df[c('Day','Month','Year')] <- with(df, list(mday(date), 
                                                 month.name[month(date)],
                                                 year(date)))
    

答案 1 :(得分:1)

以下是regex解决方案:

library(stringr)
str_match(dm, "(^[0-9]{1,3})([A-z]+)([0-9]{4})")[, 2:4]
##      [,1] [,2]       [,3]  
## [1,] "2"  "December" "2005"
## [2,] "3"  "December" "2005"
## [3,] "1"  "July"     "2012"