我使用 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 函数迭代它们来查找字符模式。
由于您的所有案例文件都在一个列表中,因此您可以迭代该列表,将每个案例文件转换为数据帧,并将数据帧存储在另一个列表中。也许这样的事情可以有所帮助:
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 个数据帧的列表。