首页 > 解决方案 > 在 R 中创建一个循环来计算不同表中特定列的词频

问题描述

我有 15 个不同的表,每个表都包含一个带有长文本的“文本”列(民意调查问题的一系列答案)。我想通过在名为“word”的列中为“text”中的每个单词创建一行来整理表格。然后我想知道每个表的词频。我写了这段代码:

Table1.tidy <- Table1 %>%
  unnest_tokens(word, text) %>%
  anti_join(stop_words) %>%
Table1.tidy %>%
  count(word, sort = TRUE)

它工作正常,但现在我想避免为每个表重复此代码。有谁知道怎么做?

标签: rloopsdryunnest

解决方案


(1) 将所有 data.frames 放入列表中。

(2) 使用purrr'map函数应用您的工作流程:

library(dplyr)
library(tidyr)
library(purrr)

my_list <- list(Table1, Table2, Table3)

my_tidy_list <- my_list %>%
  map(~ .x %>%
        unnest_tokens(word, text) %>%
        anti_join(stop_words) %>%
#        Table1.tidy %>% # I think this line is a mistake?
        count(word, sort = TRUE))

my_tidy_list[[1]]退货Table1.tidymy_tidy_list[[2]]退货Table2.tidy


推荐阅读