R-仅允许列中的数字和点
我有一个数据框,上面有这样的行R-仅允许列中的数字和点,r,regex,R,Regex,我有一个数据框,上面有这样的行 201712.20_16:26:;1.665855 1.28 2.00 0>86 271 327.4 这些都会被记录下来,有时在常规数字和日期之间会出现随机字母、数字或其他字符。如果一切正常,则应如下所示: 2017.12.20_11:19:58.132207 0.86 0.31 0.46 1.97 290.0 numbers_only <- function(x) !grepl("^0-9.", x) numbers_only(df$column
201712.20_16:26:;1.665855 1.28 2.00 0>86 271 327.4
这些都会被记录下来,有时在常规数字和日期之间会出现随机字母、数字或其他字符。如果一切正常,则应如下所示:
2017.12.20_11:19:58.132207 0.86 0.31 0.46 1.97 290.0
numbers_only <- function(x) !grepl("^0-9.", x)
numbers_only(df$column)
有没有办法删除所有不符合所需“模式”的行?可能是将列(日期列除外)限制为0到9和点之间的数字?并删除所有不属于这种情况的行
我试过这样的方法:
2017.12.20_11:19:58.132207 0.86 0.31 0.46 1.97 290.0
numbers_only <- function(x) !grepl("^0-9.", x)
numbers_only(df$column)
numbers\u only也许以下是您需要的
y <- c(
"201712.20_16:26:;1.665855 1.28 2.00 0>86 271 327.4",
"2017.12.20_11:19:58.132207 0.86 0.31 0.46 1.97 290.0"
)
numbers_only <- function(x) !grepl("[^[:digit:][:space:]:_.]", x)
numbers_only(y)
#[1] FALSE TRUE
y看看grep(“[^[:digit:[:space:::::。]”,x)
是否是您想要的。这非常有效!即使使用alnum而不是digit。非常感谢@BallerNacken您所说的只允许数字和点,带有字母字符的alnum也将有效。好的,更改了它。谢谢!