増毛へ

私は高倉健の映画「駅STATION」のファンで、毎年年末年始に必ず見てます。

北海道を舞台にした刑事の物語で、留萌本線増毛駅は、この映画のロケ地です。今年の12月に留萌本線の留萌ー増毛間が廃止になるということで、ゴールデンウイークに北海道の留萌本線に乗って増毛に行ってきました。

私は中学高校の頃までは鉄道ファン、乗り鉄でした。30年前の羽幌線廃止当日に羽幌線に乗り、留萌も通りました。実に30年ぶりの留萌でした。

深川から3両のディーゼルカーに乗ったのですが、客は私のような観光目的の人ばかりでした。JR北海道が公表した数値では留萌本線の1日当たりの利用客数は39人、営業係数という100円稼ぐのに必要な費用は4000円以上、30年以上前日

f:id:fire__water:20160505121540j:plain

f:id:fire__water:20160505125028j:plain

f:id:fire__water:20160505093107j:plain

f:id:fire__water:20160505125823j:plain

本一の赤字路線で有名になった美幸線より悪いそうだ。

駅に止まっても人の乗り降りがない、30年前はもっと人の乗り降りがあった記憶があるのですが・・・。並行して高速道路をバスが走ってるのが見える。2時間に1本くらいしかない電車乗るより、車かバスを使うよな~。北海道の鉄道はもはや使命を終えているのではないか、JR北海道の行く末を案じてしまいました。

 

大山登山に行ってきました

小学生以来30年ぶりに丹沢大山へ登山してきました。

8:55秦野発のバスでヤビツ峠へ。

大山登山はケーブルカーで下社経由がポピュラーだけど、ヤビツ峠から行くルートが一番楽なのです。

標高785mのヤビツ峠に9:30に到着。準備運動の後、9:40出発!

人もまばらな中、尾根伝いに進みます。途中下社からの合流地点を通り、1時間10分のところを50分で10:30に山頂に到着。山頂は下社から上ってきた家族連れや学生で大賑わい。

山頂には神社の社があり、蕎麦や軽食を売っている売店もありました。

30年振りの大山山頂だが、変わってない。

早めの昼飯を取って、見晴台へ。ここから下社にいくつもりだったが、まだ時間があるので、日向薬師方面に予定変更。30年振りの登山でもう足がガタガタ。登りより下りの方がキツイ。

誰も居ない道を下って、50分ほど。舗装された道に出て前方に「日帰り温泉」の旗が!「クアハウス山小屋」というロッジがあり、迷わず風呂へ。「天然水温泉」とかいう意味不明な謳い文句があったが、どうやら天然温泉ではなさそう。

すっきりして、日向薬師のバス停へ。14:15分発の伊勢原行きバスに。

30年振りの登山、ケーブルカーでのんびり帰る予定が思わぬ健脚コースに。明日は筋肉痛で動けなさそう・・・。f:id:fire__water:20150505110644j:plain

f:id:fire__water:20150505111547j:plain

帰るf:id:fire__water:20150505110108j:plain

f:id:fire__water:20150505105411j:plain

 

 

 

中古で買ったスマホが回収対象品だった・・・

7月にAmazonで買った中古のスマホGalaxy Note3が突然画面が真っ黒になったのでdocomoショップに行ったら、「このスマホは回収対象品なので修理できません」といわれた。????

受付のお姉さんいわく、盗難・紛失の場合に新品の同型機がもらえるdocomoの補償サービスを悪用して、盗難・紛失のふりをして新型機をもらい、古いほうを売る、というケースがあるという。あるいは本当に盗まれて売られたかもしれないが、今回は新品で付属品も全て揃っていたので悪用の可能性が高いらしい。

結局、お姉さんが気を利かせてくれて修理業者に掛け合って特別に修理してくれることになりました。ラッキー!

このとき、買った店の名前や価格、包装に個人名はなかったか、箱を送って欲しいなど、いろいろ聞かれた。製造番号から売った人を特定して賠償金を請求するための情報収集と思われます。

いやー、まさか自分が白ロムで悪用品を手にするとは思いもしませんでしたよ、そしてラッキーでした。docomoのお姉さんのサービスレベルの高さは神です!感謝!

一十三十一

というアーチスト知ってます?これで「ひとみとい」と読むんです。今朝偶然FMで聞いた曲「surfbank social club」、スムーズに耳になじむ80年代チックなサウンドに思わず耳を澄ませて聞き入ってしまった。youtubeで見ると、夏、湘南、シティーサウンド、AOR、80年代なテーストの曲に圧倒されました。

https://www.youtube.com/watch?v=5-02VZeuwK4

横浜生まれで湘南で遊んだアラフォー世代としては堪らない懐かしさ。今年の夏はこれでヘビーローテーション確定です。

dplyrとdata.tableを比べてみた

グループごとの計算は tapply, by, aggregate, plyrパッケージなどがありますが、どれも遅い。最近はもっぱらdata.tableを使っているのですが、最近出たパッケージdplyrが速いらしい、ということでdata.tableとdplyrのスピードを比較してみました。

5群データごとに平均値を計算する処理をします。

値とグループの2列のデータフレームを用意します。

> N <- 10000000

> x <- data.table(x=rnorm(N), b=factor(sample(letters[1:5], N, rep=T)))
>

まずはtapply

>
> # tapply
> system.time(
+ y.ta <- tapply(x$x, x$b, mean)
+ )
   ユーザ   システム       経過 
      4.49       0.11       4.65
> print(y.ta)
            a             b             c             d             e
 2.609237e-04  2.778484e-04  1.077809e-06 -1.022228e-03 -1.078577e-03
>

次にdata.table

> # data.table
> x1 <- data.table(x, key="b")
> system.time(
+ y.dt <-x1[, mean(x), key=b]
+ )
   ユーザ   システム       経過 
      0.18       0.01       0.20
> print(y.dt)
   b            V1
1: a  2.609237e-04
2: b  2.778484e-04
3: c  1.077809e-06
4: d -1.022228e-03
5: e -1.078577e-03
>

やはり、速い。

最後にdplyr

> #dplyr
> system.time(
+ y.dp <- (x %.%
+ group_by(b) %.%
+ summarise(m=mean(x)))
+ )
   ユーザ   システム       経過 
      0.41       0.07       0.48
> print(y.dp)
Source:     local data table [5 x 2]

  b             m
1 a  2.609237e-04
2 b  2.778484e-04
3 c  1.077809e-06
4 d -1.022228e-03
5 e -1.078577e-03

あれ?期待していたほどじゃないですね。

data.tableが一番速い結果となりました。

列数を変えたら変わりそうな気がしますが

とりあえずここまで。暇があったら検証してみます。

 

> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=Japanese_Japan.932  LC_CTYPE=Japanese_Japan.932  
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C                 
[5] LC_TIME=Japanese_Japan.932   

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base    

other attached packages:
[1] dplyr_0.1.2      data.table_1.9.2

loaded via a namespace (and not attached):
[1] assertthat_0.1 plyr_1.8.1     Rcpp_0.11.0    reshape2_1.2.2 stringr_0.6.2
[6] tools_3.0.2  

ベクトルに含まれるNAを直前のNAでない値で補間する

> x
 [1]  3  9 NA  8  4  1 NA NA  6 NA NA
> approx(x, method="constant",xout=seq_along(x),f=0,rule=2)$y
 [1] 3 9 9 8 4 1 1 1 6 6 6

 

とやったら出来たけど他にいい方法ないかな。