将一个巨大的数据帧拆分为许多较小的数据帧以在 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)
我需要从一个巨大的数据框(大约 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)