R 读取带有BOM表的UTF-8文本文件
我有一个开头带有字节顺序标记(U+FEFF)的文本文件。我正在尝试读取R中的文件。是否可以避免字节顺序标记 函数R 读取带有BOM表的UTF-8文本文件,r,unicode,utf-8,character-encoding,byte-order-mark,R,Unicode,Utf 8,Character Encoding,Byte Order Mark,我有一个开头带有字节顺序标记(U+FEFF)的文本文件。我正在尝试读取R中的文件。是否可以避免字节顺序标记 函数fread(来自data.tablepackage)读取文件,但在第一个变量名的开头添加ļ230;: > names(frame_pers)[1] [1] "ļ»æreg_date" read.csv功能也是如此 目前,我已经做了一个功能,从第一列名称中删除BOM表,但我相信应该有一种方法可以自动剥离BOM表 remove.BOM <- function(x) setna
fread
(来自data.table
package)读取文件,但在第一个变量名的开头添加ļ230;
:
> 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"
您是否尝试过读取.csv(…,fileEncoding=“UTF-8-BOM”)<代码>?文件说明: 从R 3.0.0开始,接受编码“UTF-8-BOM”,并将其删除 字节顺序标记(通常用于文件和网页) 由Microsoft应用程序生成)
这是在版本1.9.6和1.9.8之间处理的;更新您的
数据。表
安装以修复此问题
完成后,您可以使用fread
:
fread("file_name.csv")
也不为我工作。从notepad++复制粘贴时,我的原始数据看起来像“31.1”,但在R中,使用fread将其拆分为两列,使用read.csv,我得到以下前缀“ï”?(使用as.is=TRUE)。我使用autohotkey和Convert2Text从gui显示中获取ocr,并将其写入文件。这给了我一个问题,即“31.2”变成了“ï»。331”我使用的是1.10.4。最后我使用了“read_csv”并设置了“col_types=“c”,然后在转换为数字之前修剪第一个字符。这是一个混乱的局面。
fread("file_name.csv")