2016-07-12 7 views
3

Я использую пакет R тм, и я пытаюсь выбрать некоторые документы по их индексу и метаданные:Как фильтровать документы в tm corpus в R на основе метаданных?

orbit_corpus<-Corpus(tm_corpus, readerControl = list(reader=myReader)) 

meta(my_corpus[[1]]) 

author : a8 
origin : Department 
heading : WhiB 
id  : 1 
year : 2013 

Я хотел бы получить найти все документы, которые в течение первых ста документов моего корпуса, которые имеют была опубликована в 2013 году Это работает, чтобы определить метаданные «год» для документа 1 являются ли 2013.

meta(my_corpus[[1]],"year") == 2013 
[1] TRUE 

мне нужно что-то, что дает мне возможность найти среди первых 100 всех индексов, которые отвечают критерию , Я бы предположил что-то похожее на это (но оно не работает и, к сожалению, вероятно, также не будет генерировать список документов).

meta(orbit_corpus[[1:100]],"year") == 2013 
Error in x$content[[i]] : recursive indexing failed at level 4 

Большое спасибо за помощь!

ответ

4

Вы можете использовать tm_filter на первых 100 документов вашего корпуса (orbit_corpus[1:100])

tm_filter(orbit_corpus[1:100], FUN = function(x) meta(x)[["year"]] == "2013") 

Из документации

tm_filter возвращает корпус, содержащий документы, где FUN Удачные

+0

Спасибо! Это прекрасно работает! – Sawol

 Смежные вопросы

  • Нет связанных вопросов^_^