几个月前,我结束了一个子语句,最初与我的输入数据一起工作。它已经停止工作,使我重新审视我的丑陋过程。我不想分享它,但它同时完成几件事情:替换和不匹配'sub'
active$id[grep("CIR",active$description)] <- sub(".*CIR0*(\\d+).*","\\1",active$description[grep("CIR",active$description)],perl=TRUE)
此语句发现了嵌入在说明栏的ID行创建了一个新的ID列。子语句会查找“CIR0”后面的数字,并填充id列,如果在行描述中存在id的话。我认识到,在任务的任何一方嵌入grep子集都是低效的。
如果模式不匹配,有一种方法可以让'sub'替换为NA或为空吗?我觉得我错过了一些东西非常简单但要求社区的帮助。谢谢。
实例与创建一个id列结果:
| name | id | description |
|------+-----+-------------------|
| a | 343 | Here is CIR00343 |
| b | | Didn't have it |
| c | 123 | What is CIR|
| d | | CIR lacks a digit |
| e | 452 | CIR452 is next |
如果你给出一些样本数据并输出,这将是很好的!这样我们可以验证你需要什么。 – nograpes 2012-03-09 21:12:57
我相信自己这个问题已经足够普遍,以至于样本数据可能会更混乱,但您说得对 - 我添加了一个简短的表格。 – jed 2012-03-09 21:49:50