3

このようなデータ フレーム ( ) に取り組んでおり、df場合によっては 10000 行を超える行を含めることができます。

   Object                            Coding Fn Remaining
1  T00055                T 00055_005_<002_+  2        30
2  T00055                T 00055_008_<002_+  2        30
3  E00336           E 00336_041_<001_+001_+  3         0
4  E00336      E 00336_041_<001_+001_+001_+  4        10
5  E00336      E 00336_041_<001_+001_+002_+  4        56
6  E00336      E 00336_041_<001_+001_+002_<  4        52
7 T 00054 T 00054_013_<003_<015_+003_<001_<  4        52

データ フレームを取得するには、列の文字列に少なくとも2 回grep含まれるすべての行が必要です。_+Codingtest

やっています :

test<-filter(df,
             grepl("_[+].{2,}",Coding))

最後の行を除外することはできません。理由はありますか?どうもありがとう

結果は次のとおりです。

   Object                            Coding Fn Remaining
1  E00336           E 00336_041_<001_+001_+  3         0
2  E00336      E 00336_041_<001_+001_+001_+  4        10
3  E00336      E 00336_041_<001_+001_+002_+  4        56
4  E00336      E 00336_041_<001_+001_+002_<  4        52
5 T 00054 T 00054_013_<003_<015_+003_<001_<  4        52
4

2 に答える 2

4

次のコマンドを使用できます。

subset(df, grepl("(_\\+.*){2,}", Coding))

またはdplyr

filter(df, grepl("(_\\+.*){2,}", Coding))

現在の正規表現 は、その後に少なくとも 2 文字が続くもの"_[+].{2,}"と一致します。_+量指定子を正しく適用するには、括弧を使用してグループを作成する必要があります。

于 2014-12-02T15:05:11.990 に答える