Rで解析:データの重複削除と重複数のカウント方法

今回は、データの重複排除と重複数のカウント方法を紹介します。なお、近年のパソコンは能力が向上しているのでコードの最適化よりもいかにストレスがからだにかからない、からだにいいコードです。皆様の作業が楽になりますように。


 必要なもの

・  R(ダウンロード先はこの記事を参照ください。)

・  library XLConnect(ダウンロード先はこの記事を参照ください。)


紹介するコマンド

・  unique() : 重複削除

・  table():重複数のカウント


作業方法

下記のデータを例にしています。

14.05.04 エクセルデータ

Rを立ち上げ、コードを実行します。

まずは、データを読み込む。

###ライブラリの読み込み#####
library("XLConnect")
library("tcltk")
########

###データの読み込み#####
selectABook <- paste(as.character(tkgetOpenFile(title = "&#12456;&#12463;&#12475;&#12523;&#12501;&#12449;&#12452;&#12523;&#12434;&#36984;&#25246;",
filetypes = '{"&#12456;&#12463;&#12475;&#12523;&#12501;&#12449;&#12452;&#12523;" {".xls" ".xlsx"}}')),&nbsp;sep = "", collapse =" ")
AnaData <- readWorksheet(loadWorkbook(selectABook), sheet = 1)
########

例えばメールアドレスを重複せずに取得する。

unique(AnaData[, 1])
"ABC@ABC.co.jp" "CDE@ABC.co.jp" "EFG@ABC.co.jp" "HIJ@ABC.co.jp"

例えばメールアドレスの出現数を取得する。

table(AnaData[, 1])

そして、上記のコマンドを組み合わせるとメールアドレス別の購入商品をまとめたりする事ができます。

UniqueData <- unique(AnaData[,1]) #&#12513;&#12540;&#12523;&#12450;&#12489;&#12524;&#12473;&#12398;&#37325;&#35079;&#21066;&#38500;
FinalData <- NULL #&#20986;&#21147;&#12487;&#12540;&#12479;&#12398;&#26684;&#32013;&#29992;

for(n in 1:length(UniqueData)){
orderProduct <- subset(AnaData, AnaData[,1] == UniqueData[n])[,2] #&#36092;&#20837;&#21830;&#21697;&#12398;&#25277;&#20986;
orderProduct <- paste(orderProduct, collapse = ",") #&#36092;&#20837;&#21830;&#21697;&#12398;&#25972;&#29702;
OrderProducts <- cbind(UniqueData[n], orderProduct) #&#12513;&#12540;&#12523;&#12450;&#12489;&#12524;&#12473;&#12392;&#21830;&#21697;&#21517;&#12398;&#21512;&#20307;
FinalData <- rbind(FinalData, OrderProducts) #&#12487;&#12540;&#12479;&#12398;&#26684;&#32013;
}

colnames(FinalData) <- c("&#12513;&#12540;&#12523;&#12450;&#12489;&#12524;&#12473;", "&#36092;&#20837;&#21830;&#21697;") #&#12487;&#12540;&#12479;&#12398;&#25972;&#12360;
FinalData #&#12487;&#12540;&#12479;&#12398;&#34920;&#31034;
&#12513;&#12540;&#12523;&#12450;&#12489;&#12524;&#12473;            &#36092;&#20837;&#21830;&#21697;
[1,] "ABC@ABC.co.jp"   "A,B,C,F,A,A"
[2,] "CDE@ABC.co.jp"   "B"
[3,] "EFG@ABC.co.jp"    "A"
[4,] "HIJ@ABC.co.jp"     "D"

後は、適時エクセルにデータを変換したりしています。エクセルへの変換はこの記事を参照ください。

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました