7

文字型の変数を使用すると、R で少し問題が発生します。データフレームの私の変数は次のような構造を持っています:

X1
ANGLO AUTOMOTRIZ S.A. MATRIZ
AUTOMOTORES Y ANEXOS / AYASA
ECUA - AUTO S.A. MATRIZ
METROCAR S.A. 10 DE AGOSTO
MOSUMI LA "Y"

私の問題は、新しい変数が./-""必要ないことです。文字列は、次のようにスペースなしでグループ化する必要があります。

X2
ANGLOAUTOMOTRIZSAMATRIZ
AUTOMOTORESYANEXOSAYASA
ECUAAUTOSAMATRIZ
METROCARSA10DEAGOSTO
MOSUMILAY

Rでこれを作ることは可能です。ありがとう。

4

2 に答える 2

6

アクセント付きの文字も扱っているので、2 つのオプションを考えることができます。

  1. アクセントのある文字を完全に取り除きます。
  2. iconvアクセント付き文字を ASCII 文字に「音訳」するために使用します。

ここに両方があります。どちらの例でも、次のサンプル テキストを使用しています。

Z <- c("ANGLO AUTOMOTRIZ S.A. MATRIZ", "AUTOMOTORES Y ANEXOS / AYASA",
"ECUA - AUTO S.A. MATRIZ", "METROCAR S.A. 10 DE AGOSTO", "MOSUMI LA \"Y\"",
"distribuir contenidos", "proponer autoevaluaciones", "como buzón de actividades")

オプション 1: アクセント付きの「ó」が最後の項目で削除されていることに注意してください。

gsub("[^[:ascii:]]|[[:punct:]]|[[:space:]]", "", Z, perl=TRUE)
# [1] "ANGLOAUTOMOTRIZSAMATRIZ"  "AUTOMOTORESYANEXOSAYASA"  "ECUAAUTOSAMATRIZ"        
# [4] "METROCARSA10DEAGOSTO"     "MOSUMILAY"                "distribuircontenidos"    
# [7] "proponerautoevaluaciones" "comobuzndeactividades"   

オプション 2: 「ó」が「o」に変換されていることに注意してください。

gsub("[[:punct:]]|[[:space:]]", "", iconv(Z, to = "ASCII//TRANSLIT"))
# [1] "ANGLOAUTOMOTRIZSAMATRIZ"  "AUTOMOTORESYANEXOSAYASA"  "ECUAAUTOSAMATRIZ"        
# [4] "METROCARSA10DEAGOSTO"     "MOSUMILAY"                "distribuircontenidos"    
# [7] "proponerautoevaluaciones" "comobuzondeactividades"  

ノート:

  • 便宜上、文字クラス[[:punct:]][[:space:]].
  • 最初のオプションでは、文字クラスperl = TRUEを認識する必要があります。[[:ascii:]]
  • オプション 1の^は「not」を意味します (したがって、「ASCII 文字ではないもの、スペース、または句読点を見つけて、何も置き換えないもの) と読むことができます)。
于 2013-09-06T16:53:15.000 に答える