最初にバイト順マーク(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] ""
read.csv(..., fileEncoding = "UTF-8-BOM")
?を試しましたか。 ?file
言う:
R 3.0.0以降、エンコーディング「 "UTF-8-BOM"」が受け入れられ、バイトオーダーマークが存在する場合は削除されます(これは多くの場合、Microsoftアプリケーションによって生成されたファイルやWebページ用です)。
これは、バージョン1.9.6と1.9.8の間で このコミット ;これを修正するには、data.table
インストールを更新してください。
完了したら、fread
を使用できます。
fread("file_name.csv")