使用R的日期时间格式的正则表达式模式
我在一个数据帧中有一列A(30k行和11列),其中有多个字符串和日期时间作为输入。我需要检索所有行,如果它具有以下日期时间格式的值 2020-08-31 23:45:17使用R的日期时间格式的正则表达式模式,r,excel,R,Excel,我在一个数据帧中有一列A(30k行和11列),其中有多个字符串和日期时间作为输入。我需要检索所有行,如果它具有以下日期时间格式的值 2020-08-31 23:45:17 有人能为同一行推荐确切的正则表达式模式吗?这里有一种方法可以检索列A包含所需模式的所有行 df <- data.frame(A = c("bla", "2020-08-31 23:45:17", "bla"), B = 1:3)
有人能为同一行推荐确切的正则表达式模式吗?这里有一种方法可以检索列A包含所需模式的所有行
df <- data.frame(A = c("bla", "2020-08-31 23:45:17", "bla"),
B = 1:3)
df[grepl(df$A, pattern = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"),]
df这里有一种方法可以检索列A包含所需模式的所有行
df <- data.frame(A = c("bla", "2020-08-31 23:45:17", "bla"),
B = 1:3)
df[grepl(df$A, pattern = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"),]
df考虑这样一个函数
is_datetime <- function(x, format = "%Y-%m-%d %H:%M:%OS") {
!is.na(as.POSIXct(x, format = format, optional = TRUE))
}
假设您有一个数据帧df
,其中列a
包含一些日期时间字符。那么
df[is_datetime(df$A), ]
你应该得到你想要的行。我没有对此进行测试,因为您的问题中没有包含任何示例数据,但它应该可以工作。考虑这样一个函数
is_datetime <- function(x, format = "%Y-%m-%d %H:%M:%OS") {
!is.na(as.POSIXct(x, format = format, optional = TRUE))
}
假设您有一个数据帧df
,其中列a
包含一些日期时间字符。那么
df[is_datetime(df$A), ]
你应该得到你想要的行。我没有测试它,因为您的问题中没有包含任何示例数据,但它应该可以工作