0

次のコードを試してみます

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()を使用できません。どうすればこれを回避できますか?

4

2 に答える 2

7

特定のエンコーディングがわかっている場合は、使用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 のヘルプ ファイルを読むことをお勧めします。

于 2012-11-11T05:43:29.187 に答える
2

デイソンが正しければ...

これを行う方法は 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

于 2012-11-11T05:41:43.483 に答える