【问题标题】:Need a function to import extremly messy txt files需要一个功能来导入极其混乱的 txt 文件
【发布时间】:2020-12-01 01:36:17
【问题描述】:

我是一个完整的新手,我需要找到一种方法来导入非常混乱的 txt 文件。这意味着有很多奇怪的不同分隔符和/或奇怪的无尾分隔符。我尽力使用 read.delim 并指定参数,但似乎没有任何效果......有各种不同的文件具有不同的分隔符和行尾分隔符。我想找到对所有文件都有效的东西。我想过自己定义一个函数,但我似乎找不到一个好的方法来处理它......

example of a specifically hard to import txt file

【问题讨论】:

  • 我建议上传一个实际的 .txt 文件,否则没有人可以重现您的问题

标签: r function file import


【解决方案1】:

您可以尝试data.table::fread 函数,因为它通常只是完成任务而无需指定许多参数。不过,它肯定不适用于所有杂乱的文件。

【讨论】:

    【解决方案2】:

    你可以试试这样的。它应该适用于大多数 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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多