我想测试一个字符串,看看哪些元素实际上可以是数字。我可以使用正则表达式测试整数成功,但我正在查看哪些元素具有所有数字和1个或更少的小数。以下是我试过的:
x <- c("0.33",".1","3","123","2.3.3","1.2r") !grepl("[^0-9]",x) #integer test grepl("[^0-9[\\.{0,1}]]",x) # I kNow it's wrong but don't kNow what to do
[1] TRUE TRUE TRUE TRUE FALSE FALSE
也许有一些原因您的数据更复杂,会打破这一点,但我的第一个想法是:
> !is.na(as.numeric(x)) [1] TRUE TRUE TRUE TRUE FALSE FALSE
如以下Josh O’Brien所述,这不会拾取像7L这样的东西,R解释器将解析为整数7.如果你需要将它们包括为“合理的数字”,那么一条路由将会被选出来正则表达式第一,
x <- c("1.2","1e4","1.2.3","5L") > x [1] "1.2" "1e4" "1.2.3" "5L" > grepl("^[[:digit:]]+L",x) [1] FALSE FALSE FALSE TRUE
…然后使用gsub和索引从这些元素剥离“L”。
原文地址:https://www.jb51.cc/regex/357578.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。