単一の正規表現を使用して、文字列からいくつかのデータを抽出したいと考えています。これらの部分を括弧内の部分式として含むパターンを作成しました。perl のような環境では、これらの部分式をmyvar1=$1; myvar2=$2;
などのコードで変数に渡すだけですが、R でこれを行うにはどうすればよいでしょうか? 今のところ、これらの発生にアクセスする唯一の方法は、regexec を使用することです。regexec は perl 構文をサポートしていないなどの理由で、あまり便利ではありません。これは私が今しなければならないことです:
getoccurence <- function(text,rex,n) { # rex is the result of regexec function
occstart <- rex[[1]][n+1]
occstop <- occstart+attr(rex[[1]],'match.length')[n+1]-1
occtext <- substr(text,occstart[i],occstop)
return(occtext)
}
mytext <- "junk text, 12.3456, -01.234, valuable text before comma, all the rest"
mypattern <- "([0-9]+\\.[0-9]+), (-?[0-9]+\\.[0-9]+), (.*),"
rez <- regexec(mypattern, mytext)
var1 <- getoccurence(mytext, rez, 1)
var2 <- getoccurence(mytext, rez, 2)
var3 <- getoccurence(mytext, rez, 3)
明らかに、それは非常に不器用な解決策であり、もっと良いものがあるはずです。アドバイスをいただければ幸いです。