【发布时间】:2020-06-16 03:31:05
【问题描述】:
我想检查除句点. 之外的任何标点符号的列或值。我查看了一堆类似的问题,但似乎无法正确解决。
期望的输出:
"1.0" FALSE
"-1.0" TRUE
"-1" TRUE
"1+" TRUE
尝试:
> grepl("([.])[[:punct:]]", "1.0")
[1] FALSE
> grepl("([.])[[:punct:]]", "-1.0")
[1] FALSE
> grepl("(.)[[:punct:]]", "-1.0")
[1] TRUE
> grepl("(.)[[:punct:]]", "1.0")
[1] TRUE
基于 R 是首选但也是必需的。
【问题讨论】:
-
可能删除句点,然后将
grepl与[[:punct:]]一起使用,例如grepl("[[:punct:]]", gsub("\\.", "", x)) -
@GregorThomas 很简单,它可以工作。在大型列上也应该足够快
-
如果你想加快速度,在
gsub中使用fixed = TRUE(见答案)。使用stringi包可以让你更快一点。