読者です 読者をやめる 読者になる 読者になる

数学的にどうなのさ?

大学時代にちょっと長く数学を勉強した人の雑記。数学のこと(主に統計)や趣味、メモなどが多くなります

艦これデータ分析

艦これ R

概要

昨年の一年分、毎日燃料、弾薬、鋼材、ボーキサイト、バケツ、バーナー、開発資材、改修資材の推移を記録していました。
記録しただけでは意味がないということで簡単な統計処理をRを使ってやってみました。

Rのパッケージ

今回はdata.table、plyr、dplyr、tidyrを使いました。
plyr、dplyr、tidlyrは使い方に特徴がありますが、使い方がわかるとかなり便利。
またdata.tableのfreadはread.csvに比べると処理速度が全然違います。

曜日ごとの各資源の増加量の平均を出してみる

ちなみにデータの形はこんな感じ。

日付 燃料 弾薬 鋼材 ボーキ 高速修復材 高速建造材
1: 2015/1/1 15677 13367 22650 33955 447 400
2: 2015/1/2 13057 11786 17997 31092 399 401
3: 2015/1/3 10635 11640 16726 29258 375 403
4: 2015/1/4 12107 12198 16077 25931 312 406
5: 2015/1/5 15999 15430 21186 27060 327 409
---
361: 2015/12/27 50300 53179 186000 105000 260 1335
362: 2015/12/28 53513 57806 187194 107911 289 1338
363: 2015/12/29 57124 59283 188234 107981 290 1339
364: 2015/12/30 59992 61741 190920 108743 301 1342
365: 2015/12/31 63971 63313 193160 109293 315 1347
開発資材 改修資材 イベント期間 イベント期間2 燃料増加
1: 1065 84 0
2: 1072 84 -2620
3: 1077 84 -2422
4: 1084 90 1472
5: 1094 90 3892
---
361: 2910 32 3470
362: 2917 32 3213
363: 2918 32 3611
364: 2929 32 2868
365: 2942 34 3979
弾薬増加 鋼材増加 ボーキ増加 曜日
1: 0 0 0 木
2: -1581 -4653 -2863 金
3: -146 -1271 -1834 土
4: 558 -649 -3327 日
5: 3232 5109 1129 月
---
361: 4009 829 -3051 日
362: 4627 1194 2911 月
363: 1477 1040 70 火
364: 2458 2686 762 水
365: 1572 2240 550 木

今回は各曜日ごとに燃料、弾薬、鋼材、ボーキサイトの増加量がどれだけの差があるかを見てみます。今回はただ平均値だけで比べます。
ソースコード途中でイベント日以外を対象にしています。

以下ソースコード

if (!require(plyr)) {
install.packages("plyr")
}

if (!require(dplyr)) {
install.packages("d
plyr")
}

if (!require(tidyr)) {
install.packages("tidyr")
}

if (!require(data.table)) {
install.packages("data.table")
}

require(plyr)
require(dplyr)
require(tidyr)
require(data.table)

data <- fread("C:/tmp/file.name.csv")
data <- data[-1,]
data.sub <- data %>% filter(イベント期間 != "○") %>%#イベント日以外を集計対象に
select(日付, 燃料, 弾薬, ボーキ, 曜日, 燃料増加, 弾薬増加, 鋼材増加, ボーキ増加) %>%
group_by(曜日) %>%
mutate(fuel.avg=mean(燃料増加),
ammunition.avg=mean(弾薬増加),
steelMaterial.avg=mean(鋼材増加),
bauxite.avg=mean(ボーキ増加)) %>%
distinct(曜日) %>%
select(曜日, fuel.avg, ammunition.avg, steelMaterial.avg, bauxite.avg) %>%
arrange(曜日)

data.sub.t <- t(data.sub)
colnames(data.sub.t) <- data.sub.t[1,]
data.sub.t <- data.sub.t[,c("月", "火", "水", "木", "金", "土", "日")]
data.sub <- t(data.sub.t)

結果はdata.subに入っています。見てみるとこんな感じに。

曜日 fuel.avg ammunition.avg steelMaterial.avg bauxite.avg
月 "月" "1404.36842" "1658.6579" "1358.5526" "506.1316"
火 "火" "1868.14634" "1298.9268" "1278.6098" "741.6098"
水 "水" "1406.07500" "1232.7500" "1199.1000" "664.1000"
木 "木" "1594.95000" "1622.8250" "1454.6000" "548.9000"
金 "金" "1581.51282" "1043.9487" " 537.4615" "300.7692"
土 "土" " -45.28205" " 719.5641" "1110.1538" "301.2051"
日 "日" "1156.87179" "1033.2308" "1137.6667" "262.4359"

fuel.avgは燃料増加平均、ammunition.avgは弾薬増加平均、steelMaterial.avgは鋼材増加平均、bauxite.avgはボーキ増加平均です。

ここで見てみると、なんと時間があるはずの土日よりも平日の方が獲得資源が多くなっています。
土曜の燃料のに注目すると増えるどころか減っていることになっています。
おそらく休日にEOやマンスリー任務の消化をやっているため、出撃量が平日に比べて多いためだと思われます。

とはいえ、休日の遠征の出し方を少し考える必要がありそうですね。