2017-04-24 3 views
0

以下は、Latin-1エンコード文字「\ xf0」を削除するために必要な入力文字列です。RのLatin-1エンコード文字を削除または変換する方法は?

STR < - 「b'RT @galacticemp:越境水アイデアジャム\\ XF0 \\ x9f \\ X92 \\ XA1 \\ XF0 \\ x9f \\ X92 \\ xa6 @dstgovza @GlobalDevLab #ibmresearchwits @付きWitsUniversity @IBMResearch @USEmbassySA @ \\ XE2 \\ X80 \\ xa6' 」

のiconv(X、 "LATIN1"、 "ASCII"、サブ= "")私は多くの方法を試してみましたが、削除または変換するのに失敗した

ここで私は、バックスラッシュが1つの場合、コードは機能しますが、ダブルバックスラッシュの場合は失敗します。任意の回避策や正規表現のパターン(gsub関数)を削除する提案は私を助けてくれるでしょう。ありがとう。

答えて

1

あなたがちょうどそれらを削除したい場合は、あなたが

gsub("[\x80-\xff]", "", str) 
[1] "b'RT @galacticemp: transboundary water idea jam with @dstgovza @GlobalDevLab #ibmresearchwits @WitsUniversity @IBMResearch @USEmbassySA @'" 

gsubちょうど明確にするとともに、何これは任意の文字を置き換えてやっていることは、空の文字列で128から255の番号が付けられていること行うことができます。

編集:OPから更新された情報に基づいて 、私は今、文字列はUnicode文字が含まれているのではなく、Unicode文字用のコードをエスケープしていないと思います。これらは同様の方法で削除できますが、これらのエスケープコードを記述するパターンを指定する必要があります。

str <- "b'RT @galacticemp: transboundary water idea jam \\xf0\\x9f\\x92\\xa1 \\xf0\\x9f\\x92\\xa6 with @dstgovza @GlobalDevLab #ibmresearchwits @WitsUniversity @IBMResearch @USEmbassySA @\\xe2\\x80\\xa6'" 
gsub("\\\\x[89a-f][0-9a-f]", "", str) 
[1] "b'RT @galacticemp: transboundary water idea jam with @dstgovza @GlobalDevLab #ibmresearchwits @WitsUniversity @IBMResearch @USEmbassySA @'" 
+0

解決方法はありがとうございました。私は文字列をコピーしている間に間違いを犯しました。 .csvファイルを読み込んでいるときに、二重バックスラッシュ(問題の文字列を編集した文字列)を取得しています。しかし、実際には、それは明らかであるファイル内の単一のスラッシュを持っています。今すぐ文字を置き換える際に私を助けてください。ありがとう。 – Rishi

+0

@Rishi編集済みの回答を参照してください。 – G5W

+0

あなたは素晴らしいです。ありがとう。 – Rishi

関連する問題