大きなデータテーブルがあります。103a_foo
が存在するかどうかを確認したいのですが。しかし、大きなテーブルのファイル名は別々に書かれているので、正規表現を使用する必要があります。大きなデータの列の部分文字列の最初の一致を見つけます。
dt = structure(list(myID = c("86577", "34005","34005",
"194000", "30252", "71067"),
filename = c("/scratch/tmpdir/12a_foo.mzXML.gz",
"/scratch/tmpdir/103b_foo.XML.gz", "/scratch/tmpdir/103a_foo.XML.gz",
"/scratch/tmpdir/103a_foo.XML.gz",
"/scratch/tmpdir/100b_foo.XML.gz", "/scratch/tmpdir/108a_foo.XML.gz")),
class = c("data.table", "data.frame"),
row.names = c(NA, -5L),
.Names = c("myID", "filename"))
出力として、インデックスが3になります。これは初めて発生するためです。私はgrep('103a_foo', dt$filename)[1]
を使用していましたが、テーブルが大きい(1,000万行)ので、最初の発生時に検索を停止します。
私は103a_fooが実際の正規表現OPを使用しているかどうか疑います。 –
@WiktorStribiżewOPは、彼女が実際に正規表現を必要としていることを示すものではありません。彼女のプロフィールに基づいて、TACGという文字の特定のシーケンスを検索するかもしれない。 – Roland
これにRcppを使用する場合は、http://gallery.rcpp.org/articles/boost-regular-expressions/を参照してください。 – Roland