【问题标题】:Separation and pattern matching according occurrence time根据发生时间进行分离和模式匹配
【发布时间】:2019-02-12 06:08:40
【问题描述】:

我想在我的数据框中分隔文本内的日期。我的数据如下所示:

tt <- structure(list(V1 = c("(Q)üfür (2013)", "'Bi atlayip çikicam' cümlesini fazla ciddiye aldiysak zaar (2016)", 
"A'dan Z'ye (o biçim) (1975)", "Gün ortasinda karanlik (Anne) (1990)"
), V2 = c("Ilker Savaskurt", "Bugra Gülsoy", "Ahmet Mekin", 
"Yavuzer Çetinkaya")), .Names = c("V1", "V2"), row.names = c(80404L, 
90699L, 34694L, 53178L), class = "data.frame")

我使用此脚本将日期与文本分开。

pattern <- "[()]"
tt$info <- strsplit(tt$V1,pattern)
tt$Title <-sapply(tt$info, `[[`, 1)
tt$Year <- sapply(tt$info, function(m) (m)[2])

它给出了日期,但有些文本有多个括号。日期总是文本的结尾,所以我需要更改脚本以仅获得第二个括号。

我已经检查了这里的其他问题,但我无法提出解决方案。提前致谢。

【问题讨论】:

    标签: r pattern-matching strsplit


    【解决方案1】:

    通过使用正则表达式,您不需要拆分字符串。试试这个

    tt$year=gsub(".*\\(([0-9]{4})\\).*","\\1", tt$V1)
    
    tt
    #>                                                                      V1
    #> 80404                                                    (Q)üfür (2013)
    #> 90699 'Bi atlayip çikicam' cümlesini fazla ciddiye aldiysak zaar (2016)
    #> 34694                                       A'dan Z'ye (o biçim) (1975)
    #> 53178                              Gün ortasinda karanlik (Anne) (1990)
    #>                      V2 year
    #> 80404   Ilker Savaskurt 2013
    #> 90699      Bugra Gülsoy 2016
    #> 34694       Ahmet Mekin 1975
    #> 53178 Yavuzer Çetinkaya 1990
    

    解释:正则表达式匹配一对括号中的 4 位数字。 gsub() 提取匹配的数字。

    【讨论】:

      【解决方案2】:

      使用stringistri_extract_last_regex 的选项捕获括号之间的最后一组文本

      library(stringi)
      stri_extract_last_regex(tt$V1, "(?<=\\().*?(?=\\))")
      #[1] "2013" "2016" "1975" "1990"
      

      【讨论】:

      • 我想从 V1 @Ronak 中删除这些日期和间隔。我该怎么做?
      • @eabanoz 抱歉,我现在没有系统,因此无法立即为您提供帮助。如果您需要即时帮助,可以提出新问题。
      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多