使用grepl命名变量

时间:2015-11-20 13:05:25

标签: r grepl

我有以下数据框

amount <- c(10,12,14)
description <- c("bankafschrift", "ABN", "albert heijn") 
df <- data.frame(description, amount)


head(df)
description amount
1 bankafschrift     10
2           ABN     12
3  albert heijn     14

现在,我想进行一些文本处理,我根据描述中的单词为行指定一个帖子。所以描述包含:&#34; bankafschrift&#34;我想宣布为&#34; Bank&#34;。我知道如何获得这样的真/假值:

 df$post <- grepl('A

这给了我:

   description amount  post 
1 bankafschrift     10 FALSE       
2           ABN     12  TRUE         
3  albert heijn     14 FALSE       

但我想要帖子说&#34;杂货&#34;如果grepl语句为真。关于如何做到的任何建议?

最重要的是:

如果我想要更多项目来确定帖子我将如何使用列表?

如果这样做:

 bank_items <- c("Bank", "ABN")
 f$post <- grepl(bank_items,df$description)

它给了我以下错误:

Warning message:
In grepl(bank_items, df$description) :
argument 'pattern' has length > 1 and only the first element will be used

1 个答案:

答案 0 :(得分:1)

我们可以paste将'bank_items'放在一起,并将其用作pattern中的grepl

 i1 <- grepl(paste(bank_items, collapse='|'), df$description)
 ifelse(i1, 'Bank cost', 'Not Bank cost')