【问题标题】:Extracting and Splitting numbers and characters from string in R从R中的字符串中提取和拆分数字和字符
【发布时间】:2014-10-03 06:16:03
【问题描述】:

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

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

我想把它们做成

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

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

我正在尝试使用 strsplit 命令。但我无法继续进行下去。我真的很抱歉我没有这个代码。

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

【问题讨论】:

  • 如果你在约会之后,为什么不使用strptime(dm, "%d%B%Y", tz = "GMT")之类的东西?

标签: r string strsplit


【解决方案1】:
  1. 转换为日期对象(格式'%d%B%Y'(给出的示例))
  2. 使用yearmdaymonth获取你想要的data.frame

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)))

【讨论】:

    【解决方案2】:

    这是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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多