1

スペルミスのある表があります。その言葉に近い言葉、頻度の高い言葉から使っているものを修正する必要があります。

たとえば、実行した後

aggregate(CustomerID ~ Province, ventas2, length)

私は得る

1                             
2                     AMBA         29
    3                   BAIRES          1
    4              BENOS AIRES          1

    12            BUENAS AIRES          1

    17           BUENOS  AIRES          4
    18            buenos aires          7
    19            Buenos Aires          3
    20            BUENOS AIRES      11337
    35                 CORDOBA       2297
    36                cordoba           1
    38               CORDOBESA          1
    39              CORRIENTES        424

したがって、ブエノスアイレス、ブエノスアイレス、バイレス、ブエノスアイレスをブエノスアイレスに置き換える必要がありますが、AMBA を置き換える必要はありません。また、CORDOBESA と cordoba は CORDOBA に置き換える必要がありますが、CORRIENTES には置き換えないでください。

Rでこれを行うにはどうすればよいですか?

ありがとう!

4

2 に答える 2

0

これが集計結果の私の小さな複製です。データ フレームへのすべての呼び出しを、データの構造に合わせて変更する必要があります。

df
#output
#       word freq
#1         a    1
#2         b    2
#3         c    3

#find the max frequency
mostFrequent<-max(df[,2])  #doesn't handle ties

#find the word we will be replacing with
replaceString<-df[df[,2]==mostFrequent,1]
#[1] "c"

#find all the other words to be replaced
tobereplaced<-df[df[,2]!=mostFrequent,1]
#[1] "a" "b"

データセット全体を含む次のデータフレームがあるとします。単一の列を単語で複製します。

totalData
 #    [,1]
 #[1,] "a" 
 #[2,] "c" 
 #[3,] "b" 
 #[4,] "d" 
 #[5,] "f" 
 #[6,] "a" 
 #[7,] "d" 
 #[8,] "b" 
 #[9,] "c" 

次の呼び出しにより、置き換えたいすべての単語を、置き換えたい文字列に置き換えることができます

totaldata[totaldata%in%tobereplaced]<-replaceString
 #    [,1]
 #[1,] "c" 
 #[2,] "c" 
 #[3,] "c" 
 #[4,] "d" 
 #[5,] "f" 
 #[6,] "c" 
 #[7,] "d" 
 #[8,] "c" 
 #[9,] "c"

ご覧のとおり、a と b はすべて c に置き換えられており、他の単語は同じです。

于 2014-09-09T20:04:49.933 に答える