2

我有以下数据框

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

现在,我想做一些文本挖掘,根据描述中的单词为行指定一个帖子。所以一个描述包含:“bankafschrift”我想声明为“银行”。我知道如何获得这样的真/假值:

 df$post <- grepl('A

这给了我:

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

但我希望帖子说“杂货”,以防 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
4

1 回答 1

1

我们可以paste将 'bank_items' 放在一起并像patterngrepl.

 i1 <- grepl(paste(bank_items, collapse='|'), df$description)
 ifelse(i1, 'Bank cost', 'Not Bank cost')
于 2015-11-20T13:10:22.733 回答