如何在R中检查字符串是否为datetime格式?
编辑:是否可以检查字符串是否为特定格式,如“y-m-d”、“h:m:s”如何在R中检查字符串是否为datetime格式?,r,tidyverse,lubridate,R,Tidyverse,Lubridate,编辑:是否可以检查字符串是否为特定格式,如“y-m-d”、“h:m:s” lubridate::is.timepoint(Sys.time()) #> TRUE lubridate::is.timepoint(Sys.Date()) #> TRUE 从?lubridate::is.timepoint的文档中: 如果x是POSIXct、POSIXlt或日期对象,则为TRUE,否则为FALSE 如果只想标识日期时间而不标识日期: lubridate::is.POSIXt(Sys.ti
lubridate::is.timepoint(Sys.time())
#> TRUE
lubridate::is.timepoint(Sys.Date())
#> TRUE
从?lubridate::is.timepoint的文档中:
如果x是POSIXct、POSIXlt或日期对象,则为TRUE,否则为FALSE
如果只想标识日期时间而不标识日期:
lubridate::is.POSIXt(Sys.time())
#> TRUE
lubridate::is.POSIXt(Sys.Date())
#> FALSE
编辑
如果你想检查一种特定的格式,你可以试着用这种格式来阅读,如果你得到NA,那么它就不是
例如:
is.ymd_hms <- function(x) !is.na(lubridate::ymd_hms(x, quiet = TRUE))
is.ymd_hms("2020-01-01 22:22:22")
#> TRUE
is.ymd_hms("2020-31-01 22:22:22")
#> FALSE
运行str()
查看对象的结构。我似乎找不到str()的文档。但是如果我在str()中放入一个字符串,它将只是R中的chr,它不会检查除此之外的任何内容@Phill您应该提供一些示例,说明您期望函数的行为。如果您向我们展示您尝试了一些不起作用的内容,那就更好了。那么,是否可以检查字符串是否采用特定格式,例如“y-m-d”、“h:m:s”查看我的编辑
is.ymd_hms2 <- function(x) !is.na(as.Date(x, "%Y-%m-%d %H:%M:%S"))
is.ymd_hms2("2020-01-01 22:22:22")
#> TRUE
is.ymd_hms2("2020-31-01 22:22:22")
#> TRUE
is.ymd_hms("2020/01/01 22:22:22")
#> TRUE
is.ymd_hms2("2020/01/01 22:22:22")
#> FALSE