我有以下数据框
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
答案 0 :(得分:1)
我们可以paste
将'bank_items'放在一起,并将其用作pattern
中的grepl
。
i1 <- grepl(paste(bank_items, collapse='|'), df$description)
ifelse(i1, 'Bank cost', 'Not Bank cost')