如何在 R 程序中读取格式未知和编码未知的 csv 文件? (提供示例文件)

How to read csv file with unknown formatting and unknown encoding in R Program? (example file provided)

我已经尽力读取 r 中的 CSV 文件但失败了。我在下面的 Gdrive link.

中提供了文件示例

Data

我在文本编辑器中打开后发现它是一个制表符分隔的文件。在 Excel 中读取文件没有问题。但是当我尝试使用 "readr" 包或基本 r 包在 R 中读取它时,它失败了。不知道为什么。我尝试过不同的编码,比如 UTF-8。 UTF-16、UTF16LE。你能帮我写正确的脚本来读取这个文件吗?目前,我正在将此文件转换为 excel 作为逗号分隔以在 R 中读取。但我确信我一定做错了什么。任何帮助将不胜感激。

谢谢 阿迈勒

PS: 我不明白的是 excel 是如何在不提供任何参数的情况下读取文件的?我们可以在 R 中构建相同的逻辑来读取任何文件吗?

这是一个 Windows 相关的编码问题。

当我在 Notepad++ 中打开您的文件时,它告诉我它被编码为 UCS-2 LE BOM。将具有不寻常编码的文件读入 R 有一个技巧。在您的情况下,这似乎可以解决问题:

read.delim(con <- file("temp.csv", encoding = "UCS-2LE"))

(改编自 R: can't read unicode text files even when specifying the encoding)。

BTW "CSV" 代表 "comma separated values"。此文件具有制表符分隔值,因此您应该为其提供 .tsv 或 .txt 后缀,而不是 .csv,以避免混淆。

关于你的第二个问题,我们能否在 R 中构建相同的逻辑来猜测编码、分隔符并读取多种类型的文件,而无需我们明确说明编码和分隔符是什么 - 是的,这当然是可能的.我不确定是否可取。