将一个巨大的数据帧拆分为许多较小的数据帧以在 r 中创建一个语料库

Split a huge dataframe in many smaller dataframes to create a corpus in r

我需要从一个巨大的数据框(大约 170.000 行,但只有两列)创建一个语料库来挖掘一些文本并根据搜索词按用户名分组。例如,我从这样的数据框开始:

username    search_term
name_1      "some_text_1"
name_1      "some_text_2"
name_2      "some_text_3"
name_2      "some_text_4"
name_3      "some_text_5"
name_3      "some_text_6"
name_3      "some_text_1"

[...]

name_n      "some_text_n-1"

我想获得:

data frame 1
username    search_term
name_1      "some_text_1"
name_1      "some_text_2"

data frame 2
username    search_term
name_2      "some_text_3"
name_2      "some_text_4"

等等..

有什么想法吗?我想到了一个 for 循环,但它太慢了,因为我需要创建大约 11000 个数据帧...

要了解如何将列表转换为语料库,请参阅:

我们可以 split 将数据集 ('df1') 转换为 list

lst <- split(df1, df1$username)

通常,最好停在这里并在 list 本身内完成所有 calculations/analysis。但是,如果我们想在全局环境中创建 l000 个对象,一种方法是在用我们想要的对象名称命名 list 元素后使用 list2env

list2env(setNames(lst, paste0('DataFrame', 
                 seq_along(lst)), envir=.GlobalEnv)

DataFrame1
DataFrame2 

保存数据的另一种方法是nest

library(dplyr)
library(tidyr)
df1 %>% 
     nest(-username)