2013-08-02 51 views
1

我正嘗試使用正向/逆向查看使用正則表達式從醫療報告中捕獲文本。R 3.0後視將無法正常工作

先行正常工作,回顧後不會在所有的工作:

library(plyr) 
library(tm) 
library(stringr) 
library(gsubfn) 

d1 <- c("CCA: 135 cm/sec ICA:", "CCA: 150 cm/sec ICA:") 
d1 
[1] "CCA: 135 cm/sec ICA:" "CCA: 150 cm/sec ICA:" 

# Lookahead works 
d1$sub1 <- lapply((strapply(d1,".*?(?=ICA:)")), unique) 
Warning message: 
In d1$sub1 <- lapply((strapply(d1, ".*?(?=ICA:)")), unique) : 
Coercing LHS to a list 
d1 
[[1]] 
[1] "CCA: 135 cm/sec ICA:" 

[[2]] 
[1] "CCA: 150 cm/sec ICA:" 

$sub1 
$sub1[[1]] 
[1] "CCA: 135 cm/sec " ""     

$sub1[[2]] 
[1] "CCA: 150 cm/sec " ""     

# lookbehind fails 
d1$sub2 <- lapply((strapply(d1,"(?<=CCA:).*?(?=ICA:)")), unique) 

錯誤:

Error in structure(.External("dotTcl", ..., PACKAGE = "tcltk"), class = "tclObj") : 
[tcl] couldn't compile regular expression pattern: quantifier operand invalid. 

我知道有關於使用lapply的錯誤消息 - 但由於先行的作品似乎向後看也應該如此。

也許我錯誤地使用了lookbehind,但是我可以找到的所有例子都是語法。任何幫助?

回答

3

發現問題:

perl = TRUE修復了這個問題。

+0

我敢肯定,這是在R2.15等相同的結果,等 –