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 ステートメントが true の場合に備えて、投稿に「食料品」と言ってもらいたいです。これを行う方法について何か提案はありますか?

そしてこれに加えて:

投稿を決定するための項目を増やしたい場合、リストをどのように使用しますか?

これを行う場合:

 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」をまとめて、のように使用patternできますgrepl

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