有没有办法使用 data.frame 来迭代 R 中的文本列表?

问题描述 投票:0回答:1

我使用 gutenbergr 中的 readLines 将我的法律案例列表读入 R。代码如下所示:

my_list <- list.files(path = "C:\\Users\\Ben Tice\\Documents\\R Stuff\\UW  Job\\Cases\\data\\txts", pattern = "\\.txt$")

cases_lines <- lapply(my_list, readLines)

我可以像这样成功转换个别案例:

df_convert <- data.frame(line=1:length(cases_lines[[1]]), text=cases_lines[[1]])

但我希望能够在所有 75 个案例上使用 data.frame,而不必单独转换每个案例。

我尝试使用 lapply 函数以及 for 循环,但我无法让它们中的任何一个工作。例如,

df_convert2 <- lapply(cases_lines, data.frame(line=1:length(cases_lines[[i]]), text=cases_lines[[i]])) 

运行但会产生以下错误消息:“cases_lines[[i]] 中的错误:递归索引在级别 2 失败。”

最终,我需要一个案例列表作为数据框,这样我就可以使用 stringr 函数迭代它们来查找字符模式。

r dataframe list text lapply
1个回答
0
投票

由于您的所有案例文件都在一个列表中,因此您可以迭代该列表,将每个案例文件转换为数据帧,并将数据帧存储在另一个列表中。也许这样的事情可以有所帮助:

cases_df <- list()
for(i in 1:length(cases_line)){
  cases_df[[i]] <- data.frame(line=1:length(cases_lines[[i]]), text=cases_lines[[i]])
}

这应该创建每个案例文件的 75 个数据帧的列表。

© www.soinside.com 2019 - 2024. All rights reserved.