我在开头有一个带字节顺序标记(U + FEFF)的文本文件。我正在尝试读取R中的文件。是否可以避免字节顺序标记?
函数fread
(来自data.table
包)读取文件,但在第一个变量名的开头添加ļ»æ
:
> names(frame_pers)[1]
[1] "ļ»æreg_date"
read.csv
函数也一样。
目前我已经创建了一个从第一列名称中删除BOM的功能,但我相信应该有一种方法可以自动剥离BOM。
remove.BOM <- function(x) setnames(x, 1, substring(names(x)[1], 4))
> names(frame_pers)[1]
[1] "ļ»æreg_date"
> remove.BOM(frame_pers)
> names(frame_pers)[1]
[1] "reg_date"
我正在使用R会话的本机编码:
> options("encoding" = "")
> options("encoding")
$encoding
[1] ""
答案 0 :(得分:26)
你试过read.csv(..., fileEncoding = "UTF-8-BOM")
吗? ?file
说:
从R 3.0.0起,编码'“UTF-8-BOM”'被接受并将被删除 字节顺序标记(如果存在)(通常用于文件和网页) 由Microsoft应用程序生成)。
答案 1 :(得分:5)