【问题标题】:string pattern matching for checking date format in R用于检查 R 中日期格式的字符串模式匹配
【发布时间】:2018-08-06 16:48:05
【问题描述】:

我正在尝试使用字符串模式匹配来查找日期变量中的任何拼写错误。

日期的选择格式是 dd-mm-yyyy。

我的尝试不起作用,因为它们不区分不同类型的标点符号,而且我得到的行具有所需的格式而不是拼写错误。

谢谢!

# Data
df <- data.frame(EntryVar=c(1:7), DateVar=c("01-01-1938","1-01-1938","12-6-1939","12-06-193","12/06-1938","12.06-1938","12/06/1938"))
df$DateVar <- as.character(df$DateVar)

# Goal
dfgoal <- df[2:7, ]

# My attempts 
grep("[0-9]{2}[[:punct:]][0-9]{2}[[:punct:]][0-9]{4}", df$DateVar, value = TRUE)
df[!grep("[0-9]{2}[[:punct:]][0-9]{2}[[:punct:]][0-9]{4}",df$DateVar,value = TRUE)]

【问题讨论】:

    标签: r pattern-matching


    【解决方案1】:

    你可以试试

    df[!grepl("[0-9]{2}-[0-9]{2}-[0-9]{4}",df$DateVar),]
    

    【讨论】:

      【解决方案2】:

      您可以使用invert 选项来否定模式并仅获取不匹配的行:

      df[grep("[0-9]{2}[[:punct:]][0-9]{2}[[:punct:]][0-9]{4}",df$DateVar,invert = TRUE),]
      

      【讨论】:

        猜你喜欢
        • 2012-09-17
        • 1970-01-01
        • 1970-01-01
        • 2013-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-19
        • 1970-01-01
        相关资源
        最近更新 更多