我有一个“csv”文本文件,其中每个字段都由\t&%$#
我现在尝试导入 R分隔。
sep=
论点read.table()
坚持一个字符。有没有直接导入这个文件的快捷方式?
一些数据字段是用户提交的文本,其中包含制表符、引号和其他杂乱的内容,因此将分隔符更改为更简单的内容似乎会产生其他问题。
我有一个“csv”文本文件,其中每个字段都由\t&%$#
我现在尝试导入 R分隔。
sep=
论点read.table()
坚持一个字符。有没有直接导入这个文件的快捷方式?
一些数据字段是用户提交的文本,其中包含制表符、引号和其他杂乱的内容,因此将分隔符更改为更简单的内容似乎会产生其他问题。
以下代码将能够处理多个分隔符:
#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))
}
正如这篇文章中所解释的,如果不求助于字符串解析,在 R 中是不可能的。您可以用另一种语言(Awk、Perl、Python 等)预解析您的文件,或者逐行读取文件并在 R 中解析生成的字符串。