我正在读一堆主要包含语音的.csv文件。格式化文件的方式是一位发言者的qoutation遍历多行。我该如何在read.csv中设置我的qoutation设置才能正确导入它们?
我试图通过以下方式导入它们:
AlleProtokolleSafe <- list()
listcsv <- dir(path = "Plenarprotokolle/", pattern = "*.csv")
for (k in 1:length(listcsv)){
AlleProtokolleSafe[[k]] <- read.csv(paste(c("Plenarprotokolle/", listcsv[k]), sep = "", collapse = ""), sep = ",", header = FALSE, quote = "", encoding = "UTF-8")
}
现在的问题是,当我禁用qoutes时,文本中的“,”将被视为分隔符,尽管它们在语音中却不应被视为分隔符。如果我改为执行qoute =“ \”“,那么某些文件也将无法正确读取。我猜是因为有引号从一行开始到另一行结束。
我使用https://github.com/Datenschule/offenesparlament-data/tree/master/sessions/csv中的数据集。例如,如果您查看162.csv,您会看到qoutation从第2行开始到第52行结束。
请注意,标头= FALSE,因为如果为TRUE且qoute =“”时,它将以某种方式给出错误。 我不需要标题,因此以后可以轻松删除第一行。
我只想导入纯文本以进行单词分析,因此我打算将这些数据集的所有其他内容都剔除掉。有没有更好的方法呢?
编辑:这里仍然有问题:删除所有数据集,我得到15列和Nr以外的各种行。 162和191,我只有3列。有人可以通过查看文件来解释吗?我在那里看不到真正的区别,而且我不是真的很喜欢.csv
答案 0 :(得分:0)
我不确定,请正确理解您的问题。
我的答案正在使用data.table::fread
和dplyr
。
我准备了两个选择。
第一个选择是将data.frame之类的数据保存在列表中
第二个选项不列出,并合并列表中的所有字符串
library(data.table)
library(dplyr)
AlleProtokolleSafe <- list() # This is First option
AlleProtokolleSafe_un <- list() # This is Second option
listcsv = file.path("Your directory path",
list.files("Your directory path", pattern = '.csv'))
for (k in 1:length(listcsv)){
AlleProtokolleSafe[[k]] <- fread(listcsv[k],encoding = "UTF-8", select = 'text')
AlleProtokolleSafe_un[[k]] <- fread(listcsv[k],encoding = "UTF-8", select = 'text') %>%
sapply(., paste, collapse=" ")
}
select='text'
中的上述代码选项fread
意味着只加载text
列(我想您想要此列。对吗?)
最后,您可以在下面获得结果
> AlleProtokolleSafe[[1]][1]
1: Einen wundersch?nen sonnigen guten........Bundesminister Hermann Gr?he.
> AlleProtokolleSafe_un[[1]]
# You will get all the text in listcsv[1] with one row