問題タブ [grepl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
144 参照

regex - 時間をキャプチャするための正規表現は、コロンの前に 2 桁ではなく、1 桁しか取得しません

私の正規表現は機能するはずですが、予期しない結果を返しています。

私は R を使用しています。これらを使用しない場合でも、心配する必要はありません。これは、他のフレーバーの正規表現とかなり似ていると思います。R のドキュメントには、{n,m} 構文が機能するはずであると記載されています。

自由記述メモから薬が投与された時刻 (例: 午前 10 時 47 分、午前 3 時 4 分) を取得したいと考えています。

午前 3:04 は問題なく表示されますが、午前 10:47 の場合は代わりに午前 0:47 になります。私はかなりの数の異なることを試しましたが、何らかの理由でその最初の数字を取得できません。私が間違っていることはありますか?

0 投票する
1 に答える
1082 参照

r - R grepl - パターンを文字列に一致させる

R で grepl() を使用して、パターンを文字列に一致させています。

複数の文字列を共通の文字列に一致させ、それらがすべて一致する場合は TRUE を返す必要があります。

例えば:

変数 b のすべての単語が変数 a にも含まれているかどうかを確認したい。

パターン (スペース) が同じではないため、grepl(b, a) だけを使用することはできません。

それは次のようなものでなければならないようです:

また

しかし、どちらも機能しません。b の個々の単語を a と比較する必要があります。この場合、すべての単語が a に存在するため、TRUE を返す必要があります。

ありがとう!

0 投票する
1 に答える
122 参照

regex - Rのgrepl:単語内ダッシュによってマッチングが妨げられています

x、y、z の 3 つの単語があり、そこから 2 つの複合語 xy と yz を作成できます。

自然に発生するテキストでは、x、y、および z が互いに続くことがあります。最初のケースでは、私は持っています:

そして、「y z」ではなく「xy」を検出したい。私が行った場合:

私は c(TRUE,TRUE) を得ます。つまり、grepl は、y が単語内ダッシュを介して既に x にリンクされているという事実を捉えていないため、「y z」は実際にはテキスト内に存在しません。したがって、テキストの先頭に空白を追加した後、後読みを使用します。

今回は、目的の c(TRUE, FALSE) が得られます。さて、2番目のケースでは、私は持っています:

「x y」ではなく「yz」を検出したい。今回は先読みによる対称的なアプローチを採用して、次のことを試しました。

しかし今回は、予想どおり c(FALSE,TRUE) ではなく c(FALSE,FALSE) を取得しました。最初の位置の FALSE が予期されます (先読みにより、y の後の単語内ダッシュの存在が検出され、"x y" との一致が妨げられました)。しかし、「yz」とのマッチングを妨げているものは本当にわかりません。

ご協力ありがとうございました。

0 投票する
3 に答える
2590 参照

r - Rでgreplを使用して文字列を一致させる

次のようなフレームデータ「testData」があります。

また、次のように別のフレームデータ「addr」もあります。

次に、次のようにgreplsapplyまたは R の他の便利な関数を使用してデータを生成するにはどうすればよいですか。

0 投票する
1 に答える
3661 参照

regex - r grepl 変数内の複数のパターンを検索する

文字列変数を検索しようとしていますが、確定パターンが見つかるたびに、検索機能が TRUE を教えてくれます。私は一致を見つけるためにgreplを使用しています:

パターンは、csv ファイルから取得されたいくつかの単語から構築する必要があります。

パターンの構築に何か間違ったことをしていると思いますが、エラーが見つかりません。

以下は架空の例です

最後のgreplは一致を見つけられません

なにか提案を?

前もって感謝します

0 投票する
2 に答える
27485 参照

r - R if ステートメントで grep を使用する方法

RI では、次の例のような if ステートメントで like を実行したいと考えています。この例では、mix$color 列で red という単語を含む色を検索し、mix データフレームの新しい変数を赤に設定しています。

mix$newcolor <- if(grep("Red",mix$color) "red"

データフレーム ミックスのサンプル データは次のとおりです。

アリスブルー ブルーバイオレット ダークレッド ミディアムバイオレットレッド

次のエラー メッセージが表示されます。

警告メッセージ: In if (grepl("deep red", mix$color) == TRUE) "red" : 条件の長さが 1 を超えており、最初の要素のみが使用されます

grepl は TRUE または FALSE のブール値を返す必要があると思いますが、それは受け入れられるはずですが、何か (または多く) が不足しています。

ご協力いただきありがとうございます。

0 投票する
0 に答える
109 参照

r - grep をサポートする OR 項目はいくつありますか?

grepl を使用して文字列変数に検索を組み込む必要があります。問題は、検索するパターンがたくさんあり、時間の経過とともにパターンが成長する可能性があることです。問題は、1 つの grep 文にいくつのパターンを入れることができるかということです。実際には、次のようにパターンを保存する別の csv ファイルを使用しています。

前もってありがとうオスカー

0 投票する
1 に答える
98 参照

r - 文字列検索用にネストされた if else

再現可能なデータセット

以下に示すように、データセットdata1があります

以下に示すように、別のデータセット data2 があります。

If ステートメントは、Data2 の説明の data2$Description Chiquita mazamorraにこの文字が含まれているかどうかを確認する必要があります。含まれている場合は、Data2$Actual > Data1$Max かどうかを確認します。はいの場合、結果 == 良い、そうでない場合は小さい。Chiquita mazamorra の後には、Chiquita mazamorra 1,2h などの他の文字が存在する可能性があることに注意してください

同様に、別の ifelse は、Data2 の説明にChiquitaが含まれているかどうかを確認し、含まれている場合は Data2$Actual > Data1$Max を確認します。はいの場合、結果 == 良い、そうでない場合は小さい。チキータの後には、チキータ 24hチキータ AM 2Fなどの他の文字が存在する可能性があります。これらは問題ありませんが、チキータ ミニチキータ オリビルではありません。

これは、最終的に必要な出力 (data2) です。

これは、grepl ステートメントと ifelse ステートメントの組み合わせを使用して実行できることを知っていますが、あまり自信がありません。これを行うためのより良い方法があるかもしれませんが、わかりません。非常に混乱しています。助けが必要。