【发布时间】:2018-08-02 15:35:58
【问题描述】:
我有一个数据框,其中的线条看起来像这样
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
有没有办法删除所有不遵循所需“模式”的行?也许将列(日期列除外)限制为 0 到 9 和点之间的数字?并删除所有不属于这种情况的行?
我尝试过这样的事情:
numbers_only <- function(x) !grepl("^0-9.", x)
numbers_only(df$column)
但这似乎不起作用,因为即使那里有字母或其他特定标志,我也会得到 TRUE。 日期列也是如此,只有数字、点、下划线和冒号。
【问题讨论】:
-
看看
grep("[^[:digit:][:space:]:_.]", x)是不是你想要的。