2016-08-10 5 views
0

Я пытаюсь очистить все заголовки сообщений, связанные с заданными условиями поиска от определенных субредадов в течение заданного периода времени, используя R. Пакет «RedditExtractoR» действительно полезен, поскольку я может использовать эту строку кода, чтобы вернуть все соответствующие сообщения, а также какой-либо другой полезной информации:Задание таймфрейма при очистке от reddit с помощью RedditExtractoR в R

> reddit_urls(search_terms = 'immigrant', subreddit = 'ukpolitics', page_threshold = 5, sort_by = "new")

Моя проблема, этот код возвращает каждое сообщение от прямо сейчас, пока порог страница не заполнится, что в этом дело бывает на пару месяцев старше, чем мне нужно, поскольку я устанавливал произвольный «page_threshold», когда я тестировал код. Мои временные рамки - с 9 сентября 2015 года по 23 июня 2016 года (отметки времени unix равны 1441411201 & 1466726401 соответственно, если это имеет значение), и, следовательно, у меня есть несколько месяцев лишних данных по обе стороны от моего временного интервала.

Есть ли способ включить аргумент какого-либо рода для ограничения вывода на заданный период времени? такие как «from = X», «unitl = X» или «timeframe = X..X» (аргументы, которые я видел в других пакетах раньше).

Спасибо.

ответ

0

Похоже, что вам понадобится цикл while.

Не удается установить пакет RedditExtractoR, где я, но это может выглядеть как псевдокоде ниже:

i <- 1 
min_date <- as.Date("2015/09/09") 
max_date <- as.Date("2017/07/23") 

while(Post_min > min_date){ 

Data_out <- reddit_urls(search_terms = 'immigrant', subreddit = 'ukpolitics', page_threshold = i, sort_by = "new") 

    i <- i+1 
    Post_min <- min(Data_out$"column that contains date goes here") 
} 

"Cut Data_out manually here using min_date and max_date (filter function, dplyr package)" 

Edit:
Привет извините за поздний ответ, я был на работе перерыв, прежде чем и не устанавливали новые пакеты. Однако я сейчас дома, но расширяю свой первоначальный код, я думаю, что ниже может помочь. (То есть, если вы не решили его уже, как это было в месяц!)

library(RedditExtractoR) 
library(dplyr) 
library(magrittr) 

i <- 1 
min_date <- as.Date("2016/01/01") 
max_date <- as.Date("2016/09/11") 

Post_min <- min_date +1 

while(Post_min > min_date){ 

    Data_out <- reddit_urls(search_terms = 'immigrant', subreddit = 'ukpolitics', page_threshold = i, sort_by = "new") %>% 
      mutate(date = as.Date(date, "%d-%m-%y")) 


    i <- i+1 
    Post_min <- min(Data_out$date) 
} 

Data_out %<>% filter(date >=min_date & date <=max_date) 
+0

Я чувствую, что это так так близко к тому, что я ищу, но мое понимание всего этого действительно рудиментарным и я не совсем понимаю, что вы подразумеваете под конец. Помогло бы мне включить код или результаты функции, так как вы не можете получить пакет, где находитесь? Я чувствую, что должен использовать «Data_out $ search_date» или что-то подобное, но я не уверен. –

+0

Надеюсь, что это поможет. Определенно, что вы собираетесь использовать этот пакет, вы сдерживаете нарушение reddit api! – DataJack