Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R的日期时间格式的正则表达式模式_R_Excel - Fatal编程技术网

使用R的日期时间格式的正则表达式模式

使用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(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)

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), ]
你应该得到你想要的行。我没有测试它,因为您的问题中没有包含任何示例数据,但它应该可以工作