问题描述
我是一个完全的新手,我需要找到一种导入真正凌乱的txt文件的方法。这意味着有很多奇怪的不同的分隔符和/或没有行尾的分隔符。我通过使用read.delim并指定了参数来尽力而为,但似乎没有任何作用……有不同的分隔符和行分隔符结尾的各种不同文件。我想找到一些可以完成所有文件的工作。我曾想过自己定义一个函数,但似乎找不到一种很好的方法来实现它...
example of a specifically hard to import txt file
解决方法
您可以尝试使用data.table::fread
函数,因为它通常无需完成许多参数即可完成任务。当然,它对于所有杂乱的文件当然都行不通。
您可以尝试类似的方法。它应该适用于大多数txt文件。
只需阅读该函数,然后调用readfile("Path/to/your/file","your_end_of_line_sep","your_sep")
。如果Sep之一是转义字符,请确保在其前面加上'/'
readfile <- function(file,eol_str,sep_str = ";") {
row_list <- sapply(scan(file,what = character(),sep = eol_str),strsplit,split = sep_str)
df <- data.frame(do.call(rbind,row_list[2:length(row_list)]))
row.names(df) <- NULL
names(df) <- row_list[[1]]
return(df)
}