にコードするactor
は文字列で、"military forces of guinea-bissau (1989-1992)"
のような値と非常に複雑な値が含まれています。私はを使用して、さまざまなタイプのアクターに一致する文字パターンを見つけました。例えば、actor
に"military forces of"
が含まれ、"mutiny of"
が含まれておらず、actor
という変数に文字列変数country
が含まれている場合、新しい変数actor_type
を1
としてコーディングしたいとします。grep returnに基づくコードの新しい変数をR
私は、いくつかの恐ろしいforループに頼らずに、この新しい変数を条件付きで作成する方法を失っています。助けて!
データは、おおよそ次のようになります。あなたのデータはdata.frame
DFである場合
| | actor | country |
|---+----------------------------------------------------+-----------------|
| 1 | "military forces of guinea-bissau" | "guinea-bissau" |
| 2 | "mutiny of military forces of guinea-bissau" | "guinea-bissau" |
| 3 | "unidentified armed group (guinea-bissau)" | "guinea-bissau" |
| 4 | "mfdc: movement of democratic forces of casamance" | "guinea-bissau" |
最初の部分がうまく動作します。私は2番目の部分で何が起こっているのかかなり分かりません。私はx、xが何であるか、指標がどこから来ているのか、何を選んでいるのか分からない。また、apply()が関数の引数を取ることも知っていますが、grepl()が適用されている場合、なぜapply()コールでもfunction(x)はなぜですか?ありがとうbtw。 – Zach
'grepl'は' pattern'引数として単一の文字列をとります。国(2列目)と俳優(1列目)を比較するには、 'pattern = column 2'を使って' grepl'を各行に '適用する '必要があります。私はそれを行うために無名関数を作成し、関数が使用する変数は 'x'です。 '.data.frame'の各行は' grepl'が評価する二つの文字列のベクトルとして関数に送られます。明確な泥として私は確信している ! – Justin
これは実際には意味がありません。感謝しました:) – Zach