2016-06-30 3 views
0

나는 단어의 벡터가텍스트를 R로 그룹화하는 방법은 무엇입니까?

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

나는

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

내가 찾고 있어요 출력에서 ​​그들을 분류

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

내 현재의 접근 방식은 각각의 변환이다 싶어 그들 data.table에 그리고 merge를 사용하여 종류를 얻으십시오. 다른 간단한 솔루션이 있습니까?

+1

당신의 간단한 경우입니다. 나는'l '-c ('Apple ','Orange ','Carrot ','Onion ')을 시도 할 것이다. m <- rep (c ("fruit", "vegetable"), each = 2); m [match (x, l)]'. 나는 우리가 이것에 대해 많은 속임수를 가지고 있다고 생각한다. –

+1

당신이 이미 조회 목록을 가지고 있기 때문에 연결된 속에서 @Marek의 대답은 괜찮을 것입니다. 그리고 그것은 – Henrik

+0

은 (http://adv-r.had.co.nz/Subsetting [ "문자 매칭은 룩업 테이블을 만들 수있는 강력한 방법을 제공합니다"] (J. 울리히는 "이것은 가장 쉬운 방법입니다") 확실히 깨끗 .html # applications) (링크 된 속임수에도 나타납니다); 아마도 귀하의 룩업 테이블은 다르게 구성되었습니다. – Henrik

답변

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 
관련 문제