8

df という 3 つの列を持つ表があります。1 番目は製品のタイトル、2 番目は製品の説明、3 番目は 1 つの単語の文字列です。私がする必要があるのは、テーブル全体に対して操作を実行し、3 番目の列が 1 番目または 2 番目の列に存在するかどうかを示す 1 または 0 を持つ 2 つの新しい列 (「exists_in_title」および「exists_in_description」と呼びます) を作成することです。単純に 1:1 操作にする必要があるため、たとえば、行 1 'A' を呼び出すと、セル A3 が A1 に存在するかどうかを確認し、そのデータを使用して列 exists_in_title を作成し、A3 かどうかを確認する必要があります。 A2 に存在し、そのデータを使用して列 exists_in_description を作成します。次にB列に移動し、同じ操作を行います。何千行ものデータがあるため、これらを一度に 1 つずつ行うのは現実的ではありません。

私はgrepl、pmatch、str_countで遊んだことがありますが、本当に必要なことをしているようには見えません。grepl はおそらく私が必要としているものに最も近いと思います。これは私が書いた 2 行のコードの例です。

df$exists_in_title <- grepl(df$A3, df$A1)

df$exists_in_description <- grepl(df$A3, df$A2)

ただし、それらを実行すると、次のメッセージが表示され、適切に機能しなかったと思われます:「引数 'パターン' の長さ > 1 で、最初の要素のみが使用されます」

これを行う方法についての助けをいただければ幸いです。ありがとう!

4

1 に答える 1