2013-11-25 4 views
2

2 곡으로 R에서 단어 구름을 만들었습니다. 이제 tdm에서 항목을 표시 할 때 노래 1과 노래 2의 단어 빈도가 표시됩니다. 단어 구름을 완벽하게 인쇄 할 수 있습니다. 내 문제는 주파수가 2 미만인 tdm의 단어를 원하지 않는다는 것입니다. 어떻게 할 수 있습니까? R의 단어 구름에서 특정 단어 제거

나는 코드를 작성하고이 출력을 가지고 :

tdm=TermDocumentMatrix(corpus) 

> tdm=as.matrix(tdm) 
> 
> tdm 
> 

song 1 song 2 
act     0 2 
action    0 2 
actions    0 1 
activity    5 4 

나는 단지 그것을 한 번 모두 노래보다 더 많이 발생하는 단어 활동을하고자합니다. 나는 단어, 행동, 행동, 행동을 제거하고 싶다. 어떻게해야합니까?

+0

[R의 단어 구름에서 단어를 제거]의 중복 가능성 (http://stackoverflow.com/questions/20111432/removing-words : 아래와 같이 각 단계 떨어져 찢어 자신의 코드를 실행할 수 있습니다 -from-word-cloud-in-r) –

+0

아니요, 정확한 복제본이 아닙니다. –

+1

어떤 패키지를 사용하고 있습니까? 'tm' 패키지입니까? 작성한 코드가 너무 길지 않은 경우 예제를 재현 할 수 있도록 작은 데이터 세트로 게시물에 추가하는 것이 좋습니다. –

답변

4

당신은이 같은 일부 뭔가 작업을해야 데이터를 제공하지 않았다

data("crude") 
tdm <- TermDocumentMatrix(crude) 

x <- as.matrix(tdm)[, 1:2] 
x[rowSums(apply(x, 2, ">", 1)) == 2, ] 

설명 : x <- as.matrix(tdm)[, 1:2]은 그냥 아무것도 할 수 있지만 보였다 데이터를 만드는 데 필요한되지 않도록 데이터 추천 열을 얻는 선을 당신이 아무 것도 제공하지 않았기 때문에 당신처럼. 이 라인 apply(x, 2, ">", 1)는이 문장의 논리 값이 1보다 큰 것을 말합니다. 그런 다음 이것을 rowSums (논리 값은 TRUE = 1이고 FALSE = 0)으로 감 쌉니다. 2와 같은 값 (내가 전에 > 1을 가졌지 만 이것은 엉성함)은 찾고있는 조건입니다. 논리 인덱스를이 출력 x[GRAB_THE_ROWS, ]과 함께 사용합니다.

(step_1 <- apply(x, 2, ">", 1)) 
(step_2 <- rowSums(step_1)) 
(step_3 <- step_2 == 2) 
x[step_3, ] 
+0

그것은 효과가 있었지만,이 두 줄을 설명해 주시겠습니까? 나는 그것을 얻을 수 없습니다. –