【发布时间】:2018-02-06 03:17:40
【问题描述】:
我有一个包含一些格式错误的数据的字符串。
"007>009 021>089,017,018,12 - ,1200EST -"
子字符串,1200EST 是一个错误,可能是属于另一个变量的数据。目前尚不清楚这种类型的格式错误在数据集中的频率有多高,但由于子字符串的格式包含字母(字符串根本不应该有),我想将它作为我的搜索模式 @ 987654323@。关键是要获取子字符串的其余部分,即前面(或潜在的尾随)数字和逗号,如果包含字母,则基本上是空格之间的所有内容。问题是正则表达式模式必须相当通用,基本上是任何字母系列和与字母系列连续的所有非空格字符。
我有这个:
gsub("\\s+.*[[:alpha:]].*\\s+", " ", h2)
这根本不起作用,返回:
[1] "007>009-"
如何格式化正则表达式模式?
编辑
包含字母的子字符串也可能如下所示:
“EST1200” “ 美东时间 ” “ -1500ABC”
同样,仅由空格分隔的子字符串,包含 1 个或多个字母与 0 个或多个其他任何类型的字符连续。
【问题讨论】:
-
确定将字符串拆分为单个空格,然后使用
grepl测试任何带有[[:alpha:]]的子字符串和相应的子集。 -
您能否举出 4-5 个您认为可能代表您正在寻找的内容的示例?以及您期望的结果?