次のコードを試してみます
j <- "*Politics:* Disgraced peer Jeffrey Archer is set to make \xa31m from his Belmarsh "
nchar(j)
# Error in nchar(j) : invalid multibyte string 1
ご覧のとおり、nchar()を使用できません。どうすればこれを回避できますか?
特定のエンコーディングがわかっている場合は、使用iconv
して少し作業しやすいものに変換できます
j <- "*Politics:* Disgraced peer Jeffrey Archer is set to make \xa31m from his Belmarsh "
iconv(j, "ISO-8859-1", "UTF-8")
#[1] "*Politics:* Disgraced peer Jeffrey Archer is set to make £1m from his Belmarsh "
nchar(iconv(j, "ISO-8859-1", "UTF-8"))
#[1] 79
私はあなたのテキストをファイルに書き込み、geany を使用してエンコーディングをチェックしました。これが ISO-8859-1 にたどり着いた方法です。
エンコーディングを理解する必要のない代替ルートはtype="bytes"
、手動で UTF-8 に変換する代わりに使用することです
nchar(j, type = "bytes")
#[1] 79
?nchar
デフォルトのタイプと type="bytes" にはわずかな違いがあるため、nchar のヘルプ ファイルを読むことをお勧めします。
デイソンが正しければ...
これを行う方法は 1 つしかなく、次のように各文字列を読み取る必要がありますreadLines
。
x <- readLines(n=2)
*Politics:* Disgraced peer Jeffrey Archer is set to make \xa31m from his Belmarsh
df vetf tefer\x vtgr
nchar(x)
n=2 は、2 行で読んでいることを R に伝えます。次に、それらを読み込みます ( rgui ではcontr+を使用し、R スタジオでは + を使用しました) 。次に、使用できますrcntrlenternchar