我需要根据搜索条件从巨大的数据框(大约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个数据帧...
要了解如何将列表转换为语料库,请参阅:How transform a list into a corpus in r?
答案 0 :(得分:2)
我们可以split
将数据集('df1')转换为list
lst <- split(df1, df1$username)
通常,最好停在此处并在list
内进行所有计算/分析。但是,如果我们想在全局环境中创建l000个对象,则在使用我们想要的对象名称命名list2env
元素后,一种方法是使用list
。
list2env(setNames(lst, paste0('DataFrame',
seq_along(lst)), envir=.GlobalEnv)
DataFrame1
DataFrame2
另一种保存数据的方法是nest
library(dplyr)
library(tidyr)
df1 %>%
nest(-username)