如何用RedditExtractoR::find_thread_urls()遍历关键词与子Reddit所有组合
解决方法
要遍历关键词与子Reddit的所有组合,你需要先生成两者的笛卡尔积(所有配对组合),再逐个调用find_thread_urls(),最后合并结果。以下是两种简洁的实现方式:
方法1:Base R 实现
library(RedditExtractoR) keywords <- c('cats', 'dogs', 'catnip') subreddit <- c('cats', 'animals') # 生成所有关键词-子Reddit组合 combos <- expand.grid(keyword = keywords, subreddit = subreddit, stringsAsFactors = FALSE) # 遍历每个组合,调用函数并收集结果 results_list <- apply(combos, 1, function(row) { find_thread_urls(keywords = row[["keyword"]], subreddit = row[["subreddit"]]) }) # 合并所有结果为单个数据框 post_urls <- do.call(rbind, results_list)
方法2:Tidyverse 风格实现(更直观)
如果你熟悉tidyverse工具链,用purrr包的pmap可以更简洁地处理:
library(RedditExtractoR) library(tidyverse) keywords <- c('cats', 'dogs', 'catnip') subreddit <- c('cats', 'animals') post_urls <- expand.grid(keyword = keywords, subreddit = subreddit, stringsAsFactors = FALSE) %>% pmap_dfr(function(keyword, subreddit) { find_thread_urls(keywords = keyword, subreddit = subreddit) })
关键说明
expand.grid()会生成3×2=6行的组合数据框,包含所有关键词与子Reddit的配对。- 两种方法都是逐个组合调用
find_thread_urls(),确保每次传入单个关键词和单个子Reddit(符合函数的参数预期)。 - 最终合并后的
post_urls会包含所有组合的结果,方便后续分析。
内容的提问来源于stack exchange,提问作者I_like_insights
相关产品推荐
相关产品推荐

