进口;csv";带多字符分隔符的文件到R?

进口;csv";带多字符分隔符的文件到R?,r,csv,read.table,R,Csv,Read.table,我有一个“csv”文本文件,其中每个字段由\t&%$\code>分隔,我现在正试图将其导入R read.table()的sep=参数在单个字符上插入。有没有直接导入此文件的快速方法 一些数据字段是用户提交的文本,其中包含制表符、引号和其他杂乱的内容,因此将分隔符更改为更简单的形式可能会产生其他问题。如中所述,如果不借助字符串解析,在R中是不可能的。您可以用另一种语言(Awk、Perl、Python等)预解析文件,也可以逐行读取文件,并用R解析生成的字符串。以下代码将能够处理多个分隔符字符: #f

我有一个“csv”文本文件,其中每个字段由
\t&%$\code>分隔,我现在正试图将其导入R

read.table()
sep=
参数在单个字符上插入。有没有直接导入此文件的快速方法


一些数据字段是用户提交的文本,其中包含制表符、引号和其他杂乱的内容,因此将分隔符更改为更简单的形式可能会产生其他问题。

如中所述,如果不借助字符串解析,在R中是不可能的。您可以用另一种语言(Awk、Perl、Python等)预解析文件,也可以逐行读取文件,并用R解析生成的字符串。

以下代码将能够处理多个分隔符字符:

#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))
}

#fileName想要给出一个混乱的示例吗?我的想法是,如果它是一个单一的文件,可能值得对原始文件进行查找替换。但是,如果它确实很凌乱,而且不起作用,请尝试将数据作为非结构化数据读入(如
readLines
),然后对导入的字符串使用regexp,这将允许您单独处理有问题的行。这不是最好的,但值得一试: