将带有多字符分隔符的“csv”文件导入R?

时间:2013-08-12 11:56:07

标签: r csv read.table

我有一个“csv”文本文件,其中每个字段由\t&%$#分隔,我现在尝试将其导入到R中。

单个字符上sep=个现实主义者的read.table()参数。有没有快速直接导入此文件的方法?

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

2 个答案:

答案 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中解析生成的字符串。