2017-02-14 7 views
0

「キーワード」に基づいて新しい列に値を割り当てる必要があります。私は以下のような簡単な裁判をしました。ルールは "広告"または "マーケティング"を含むすべてのキーワードに "マーケティング"としてタグを付ける必要があります。テキストカテゴリに基づいて条件付きで列に値を割り当てるR

keyword <- c("advertising plan", 
      "advertising budget", 
      "marketing plan", 
      "marketing budget", 
      "hr plan", 
      "hr budget", 
      "operation plan", 
      "operation budget") 
indicator <- c(1,0,0,1,1,1,0,1) 
sample <- cbind(keyword,indicator) 

私はこの方法を使用してタグ付けを行いました。

sample$topic <- ifelse(grepl("(marketing|advertising)",sample$keyword),"Marketing",0) 

しかし、今、私は以下のような別の文字列の要因として保存されている長いルール、持っている:ルールに前のコードで一つ一つを入力するのは難しいです

rule <- c("marketing", "advertising", "word 3", "word 4" .... "word 500") 

を。私はRですべてのルールを一緒に実行する方法があるのだろうか、これを行うためのループを書くべきかと思う。

+1

使用' paste'にpatternのための区切り文字|で単一の文字列にvectorを折りたたむことができます(ペースト(ルール、崩壊= "|")、sample $ keyword)) ' – akrun

答えて

0

我々はas.integer `すなわちベクトル(greplを折りたたむにgrepl

ifelse(grepl(paste(rule, collapse="|"), sample$keyword), "Marketing", 0) 
+0

お返事ありがとうございます。私はこれを試しましたが、値は "Marketing"の代わりに1として戻ります。 –

+0

@ RyanTao私は "マーケティング"を以前に見ていない、それを修正した – akrun

+0

ありがとう。それは完璧に動作します –

関連する問題