2
我有许多可以用下列模式表示的列名称。用R中的正则表达式替换数字前面的字符
dat <- c("Male97","Male98","Male99", "Male100andover","Female0","Female1" ,"Female2", "Female3", "Female4" ,"Female5", "Female100andover")
我想添加一个前面的分隔符例如使用正则表达式的字母和数字字符之间的短划线。
我想要的输出是,例如,Male-97
或Female-0
。但是,我不希望在'100及以上'的情况下在数字字符后面插入分隔符。
我曾尝试以下的正则表达式:
gsub('([e])[0-9]', '-', dat)
它几乎工程。我需要一些不能用短划线代替'e'的东西。
有人可以帮我一起这个请。
感谢,这几乎是我所需要的,这是很好的解释。一如既往,边缘情况是问题所在。你知道如何处理'100andover'案件吗?在使用您的示例之前,我可以执行两步gsub并清理它们。尽管如此,一步就很棒。 – John
如果你消除了'$',你会得到如下结果:''女-100andover'''。这是你需要的吗? –
只需一秒钟,是否意味着'Female100andover'应该变成'Female-100andover'?那么'Female100and200over'呢? –