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) 

나는 태그 지정을하기 위해이 방법을 사용했습니다. 이전 코드에 의해 규칙 하나를 입력하기 어렵다

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

:

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

는하지만 지금은 다른 문자열 요소 아래 등 저장되어 더 이상 규칙을 가지고있다. 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

고마워요. 그것은 완벽하게 작동합니다 –