« [R]リストの要素に後から名前を付ける | トップページ | [C#]リストの要素を削除する »

2024年4月29日 (月)

[R]read_lines関数で様々な文字コードのテキストファイルを読み込む

localeオプションを使用する。はじめに、この動作確認のためのテキストファイルをPowerShellで作成する。それぞれ文字コードがシフトJISとUTF-8(BOM無し)のCSVファイルを作成している。

PS > $lines = "1,セナディア,鈴木みのり", "2,イレイナ,本渡楓"
PS > $odir = (gl).Path
PS > $lines | Out-File -Encoding default ($odir + "\sjis.csv")
PS > [IO.File]::WriteAllLines(($odir + "\utf8nb.csv"), $lines)
PS > Get-Content sjis.csv
1,セナディア,鈴木みのり
2,イレイナ,本渡楓
PS > Get-Content utf8nb.csv -Encoding utf8
1,セナディア,鈴木みのり
2,イレイナ,本渡楓

read_lines関数を使用する際に、localeオプションに文字コードを指定すればよい。以下の例のとおり、デフォルトではUTF-8で読み込もうとするため、UTF-8であれば明示的に指定しなくてもかまわない。

> library(tidyverse)
> read_lines("sjis.csv", progress = FALSE)
[1] "1,<83>Z<83>i<83>f<83>B<83>A,<97><96><U+0602><U+0742><U+0302>" "2,<83>C<83><8c><83>C<83>i,<96>{<93>n<95><96>"
> read_lines("sjis.csv", progress = FALSE, locale = locale(encoding = "SJIS"))
[1] "1,セナディア,鈴木みのり" "2,イレイナ,本渡楓"
> read_lines("utf8nb.csv", progress = FALSE)
[1] "1,セナディア,鈴木みのり" "2,イレイナ,本渡楓"
> read_lines("utf8nb.csv", progress = FALSE, locale = locale(encoding = "UTF-8"))
[1] "1,セナディア,鈴木みのり" "2,イレイナ,本渡楓"

« [R]リストの要素に後から名前を付ける | トップページ | [C#]リストの要素を削除する »

R(tidyverse)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]リストの要素に後から名前を付ける | トップページ | [C#]リストの要素を削除する »

無料ブログはココログ

■■

■■■