2016-06-30 3 views
0

私は私が探しています出力はテキストをRのグループに分類するには?

c('fruit', 'fruit', 'fruit', 'vegetable', 'vegetable', 'vegetable') . 

私の現在のアプローチは、それぞれを変換することである

list('fruit' = c('Apple', 'Orange'), 
'vegetable' = c('Carrot','Onion') 

でそれらを分類したい言葉

c('Apple','Orange','Apple','Carrot','Onion','Onion') 

のベクトルを持っていますそれらをdata.tableに設定し、mergeを使用してカテゴリを取得します。他の簡単なソリューションはありますか?

+1

あなたはベクトルにこだわることができ、あなたの単純なケースであります。私は 'l ' - c(' Apple '、' Orange '、' Carrot '、' Onion ')を試してみる。 m < - rep(c( "果物"、 "野菜")、それぞれ= 2)。 m [match(x、l)] 'となります。私たちにはこれのためのたくさんのダブがあると思います。 –

+1

リンクリストに@Marekの回答がある場合は、すでに検索リストがあるので、ここでうまくいくはずです。そして、それは確かにきれいです( "これははるかに簡単な方法です"、J. Ulrich) – Henrik

+0

["文字マッチングはルックアップテーブルを作成する強力な方法を提供する"](http://adv-r.had.co.nz/Subsetting .html#applications)(リンクされたdupeにも表示されます)。ルックアップテーブルの構造が異なっていた可能性もあります。 – Henrik

答えて

1

ここに1つの代替

x <- c('Apple','Orange','Apple','Carrot','Onion','Onion') 
lst <- list('fruit' = c('Apple', 'Orange'), 
'vegetable' = c('Carrot','Onion')) 
with(stack(lst), ind[match(x, values)]) 
# [1] fruit  fruit  fruit  vegetable vegetable vegetable 
関連する問題