# # Cドライブ直下のファイル配置は権限によってはエラーとなります。 # 一番最後の<9>のテーブル保存の箇所において、 # 書籍とは違うC:/temp/ という箇所を指定しています。 # decile.csvを置く場所も含めてファイルパスは各自の環境で調整をして下さい。 # # <1>デシル分析用データ読み込み deciledata = read.csv("C:/decile.csv", header = T) # <2>データ概要確認 str(deciledata) summary(deciledata) hist(deciledata$sales) # <3>顧客IDをキーに、売上を集計 custsum <- aggregate(deciledata$sales,list(deciledata$custID),sum) # <4>変数名をわかりやすく加工 names(custsum) <- c("custID","Monetary") # <5>分布確認 hist(custsum$Monetary) # <6>10のランクを計算し、付与 custsum$decilerank <- cut(custsum$Monetary,quantile(custsum$Monetary,(0:10)/10,na.rm=TRUE),label=FALSE,include.lowest=TRUE) # <7>ランクごとに集計し、変数名をわかりやすく加工 decile <- aggregate(custsum$Monetary,list(custsum$decilerank),sum) names(decile) <- c("decilerank","Monetary") # <8>比率を計算し、ソート total <- sum(decile$Monetary) percent <- decile$Monetary / total * 100 decile2 <- cbind(decile, percent) decile3 <- decile2[order(-decile2$decilerank),] # <9>decilerankが10の人を抽出。そのテーブルを保存。 subset(custsum, custsum$decilerank==10) goodcustomers <- subset(custsum, custsum$decilerank==10) write.csv(goodcustomers, "C:/temp/goodcustomers.csv", quote=F, row.names=F)