5

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

sep=论点read.table()坚持一个字符。有没有直接导入这个文件的快捷方式?

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

4

2 回答 2

6

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

#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))
}
于 2014-10-03T18:10:58.657 回答
2

正如这篇文章中所解释的,如果不求助于字符串解析,在 R 中是不可能的。您可以用另一种语言(Awk、Perl、Python 等)预解析您的文件,或者逐行读取文件并在 R 中解析生成的字符串。

于 2013-08-12T15:05:44.183 回答