非标准字符阻止我读取R中的完整csv文件

非标准字符阻止我读取R中的完整csv文件,r,import,read.csv,R,Import,Read.csv,我的csv文件(可通过链接访问并通过屏幕截图查看)有8个观察结果。Obs#5在“作者”列中具有非标准字符。我把这个涂成了黄色 当我运行以下命令时: 数据1一位同事提出了这个解决方案: 原始字符是^z,几十年来DOS/Windows一直使用它作为文件结束标记。由于UNIX系统从未使用^z,读入问题是Windows特有的。Windows系统通常指示用户使用“ALT”代码输入非ASCII字符(如)。这可能是^z的来源 使用实用程序将^z转换为无害的内容。下面的killZ函数取文件名,将^z转换为*

我的csv文件(可通过链接访问并通过屏幕截图查看)有8个观察结果。Obs#5在“作者”列中具有非标准字符。我把这个涂成了黄色

当我运行以下命令时:


数据1一位同事提出了这个解决方案:

原始字符是^z,几十年来DOS/Windows一直使用它作为文件结束标记。由于UNIX系统从未使用^z,读入问题是Windows特有的。Windows系统通常指示用户使用“ALT”代码输入非ASCII字符(如)。这可能是^z的来源

使用实用程序将^z转换为无害的内容。下面的killZ函数取文件名,将^z转换为*,然后将结果写入与原始文件相同的目录中,但在.txt或.csv(或其他文件)之前插入-noz文件类型。然后,您可以使用与读取原始.txt或.csv文件相同的方式读取-noz文件。”


killZ您可以检查@akrun我查看了您建议的链接并尝试了以下内容:data1
killZ <- function(fname) {
  # open in binary mode
  f <- file(fname, "rb")
  res <- readLines(f)
  # translate the ^Z to *
  res <- gsub("\032", "*", res, fixed = TRUE)
  # Create the new file name
  ftype <- stringr::str_extract(fname, "\\..{1,3}$")
  new_name <- paste0(gsub(ftype, "", fname), "-noz", ftype)
  writeLines(res, con = new_name)
  close(f)
  return(new_name)
}