幾個月前,我結束了一個子語句,最初與我的輸入數據一起工作。它已經停止工作,使我重新審視我的醜陋過程。我不想分享它,但它同時完成幾件事情:替換和不匹配'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