我有一个“csv”文本文件,其中每个字段由\t&%$#
分隔,我现在尝试将其导入到R中。
单个字符上sep=
个现实主义者的read.table()
参数。有没有快速直接导入此文件的方法?
某些数据字段是用户提交的文本,其中包含制表符,引号和其他杂乱的内容,因此将分隔符更改为更简单的内容似乎可能会产生其他问题。
答案 0 :(得分:4)
以下代码将能够处理多个分隔符字符:
#fileName <- file name with fully qualified path
#separators <- each of them separated by '|'
read <- function(fileName, separators) {
data <- readLines(con <- file(fileName))
close(con)
records <- sapply(data, strsplit, split=separators)
dataFrame <- data.frame(t(sapply(records,c)))
rownames(dataFrame) <- 1: nrow(dataFrame)
return(as.data.frame(dataFrame,stringsAsFactors = FALSE))
}
答案 1 :(得分:1)
如this post中所述,在R中不可能不使用字符串解析。您可以使用其他语言(Awk,Perl,Python等)预解析文件,或者逐行读取文件并在R中解析生成的字符串。