MacでAnacondaをインストールする

以下,terminalに貼り付ける.と言ってもバージョンとかあるので一行ずつが適切.

# Homebrewをインストールしていなかったらこれ
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# pythonの環境管理ツールpyenvのインストール
brew install pyenv

# 環境変数の設定とPyenvのTerminalへの設定
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

# インストール可能なpythonの種類を表示
pyenv install -l

# Anacondaのインストール(ここではAnaconda3−4.1.1)
pyenv install anaconda3-4.1.1

# pyenvの再構成
pyenv rehash

# 使用可能なPythonの一覧を表示
# インストールが成功したら,リストに出てくるはず
# *がついてるのが設定されているPython
pyenv versions


# 使用可能なPythonの一覧
pyenv versions

# 使用するpythonの設定
pyenv global anaconda3-2.1.0

# 現在のPythonのバージョン確認
# ここで次のように表示されるか
# Python 3.5.2 :: Anaconda custom (x86_64)
python --version

# ひと通り設定が終わったら、
conda update conda


2.7系のAnacondaと共存させたい場合は,インストールされたAnaconda Navigatorで
Environmentsを開き,Createでpy27とかやってどのPythonにするかとかメッセージが出てくるから,2.7にすればいい.
インストール先が上で設定した3.4.4系の中にインストールされるのでちょっと驚くが,pythonのバージョンは2.7.xxと表示されるはず.

出所:
https://github.com/yyuu/pyenv#homebrew-on-mac-os-x
http://qiita.com/ken0nek/items/c51b8e2b83d902698fdf

フォントを考える

特にプログラミングするとき,フォントって気になりません?
特にWindowsWin7環境だとほっといたらMSゴシックでしょう.あれ嫌いなんですよ.
2バイトと1バイト文字混在させるとカーソル位置が合わなくなって変な感じになりません?

メイリオをモノタイプ化してくれるもの*1もありますけど,ここでは源ノ角ゴシックのは製品をおすすめしたい.
詳細は
https://ja.wikipedia.org/wiki/Source_Han_Sans
を参照.

MacのRStudioではGen-ei GothicRMをつかっていて,WindowsのそれではGen-shinGothicRMをつかってる.
Macスプレッドシートいじろうとは思わないんだけど,Windowsでアイデアが出てくるとは思えないという面倒くさいわたしに多様な選択肢を与えてくれる源ノ角フォント派生形のこれらのフォントは非常にいい感じ.

*1:www.geocities.jp/meir000/meiryoKe/

Macでフォルダパスを表示したい

Macクリーンインストールして,ファイルとかの移動はおおかた終わったんだけど,細かい設定が気づいたときに発生する.
パスバーの表示でもいいじゃないかと思うかもしれないが,やっぱりFinder上でフォルダパスを確認したい.

Finder上でフォルダパスを表示する*1には,ターミナルを開いて
defaults write com.apple.finder _FXShowPosixPathInTitle -boolean true
として
killall Finder
でFinderを再起動.

元に戻すには,
defaults delete com.apple.finder _FXShowPosixPathInTitle
でFinderの再起動
killall Finder

不可視フォルダを表示させるには*2
defaults write com.apple.finder AppleShowAllFiles -boolean true
としてFinderを再起動する.
killall Finder
元に戻すには
defaults delete com.apple.finder AppleShowAllFiles

killall Finder
をすればよい.

この辺の話は
http://inforati.jp/apple/mac-tips-techniques/system-hints/
にお世話になった.
借文オンパレードだが,MBPがでたときに移行するときの自分メモなのだ.

それと,Cmd+Shift+Gでパスの直接入力もできるが,MacなのにそんなWindows的な方法じゃないとだめなの?って思うとき,
FinderPathをインストールすればよい.
https://bahoom.com/finderpath/

カブっているのはどいつだ!?

次につなげるというより,何が悪いんだろうと評価する場合の話.
dplyr使って,データから重複を除きたいときはunique()とかdistinct()とかで取り除ける.
逆の話ってあんまりないよね.重複しているデータセットを知りたい.
普通だったらduplicateとか使うんだろうけど,使い方がよくわからないのでこうやった.

> require(dplyr)
> # 適当なデータセットを作る
> cbind(flag=paste(rep("A",4),1:4, sep=""), data.frame(matrix((runif(4*5)),nrow=4))) %>%
+   # tbl_df形式に変換(趣味の問題)
+   tbl_df() %>% 
+   # あえてダブらせるために元データから3個サンプリングしてくっつける
+   bind_rows(.,sample_n(.,size = 3)) %>% 
+   arrange(flag) %>% 
+   # グループ化して
+   group_by(flag) %>%
+   # 数を数えてなにがダブってたか表示する
+   filter(n()>1)
Source: local data frame [6 x 6]
Groups: flag [3]

    flag         X1        X2        X3        X4        X5
  <fctr>      <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
1     A1 0.29190067 0.9188347 0.4091478 0.4894116 0.9184717
2     A1 0.29190067 0.9188347 0.4091478 0.4894116 0.9184717
3     A3 0.67632804 0.9658845 0.7904995 0.2662530 0.6808312
4     A3 0.67632804 0.9658845 0.7904995 0.2662530 0.6808312
5     A4 0.08709546 0.1974051 0.1944737 0.3843282 0.9018635
6     A4 0.08709546 0.1974051 0.1944737 0.3843282 0.9018635

texで画像を表示させる

何を思い立ったか,MacのOSをSierraにした.しかもクリーンインストール
インストール時の注意点は,ダウンロードしたときご本尊が表示されるのはLaunchpadの中であること,
クリーンインストールするときに,HDDをカラにしたあとOSをインストールする前に再起動すると取り返しがつきづらいこと,
取り返すためにはインターネット経由でオリジナルのOSを入れ直す二度手間となること.
詳しくは Mac OS クリーンインストールググるとわかる.

で,いろいろと必要な物をインストールする.
TexのインストールはMacTexをインストールすりゃよくて,インストールしたあとはTeX Live Utilityでパッケージの更新をすればいいだけ.
直にlatex書くのがめんどいので愛用しているLyxを入れる.
texをLyxで書くのは,RをRstudioから使ってるのとおなじような便利さ.
おすすめ.

で,そのままではLyxでPDFを画像に変換できないのでこうやって解決した

Macportsをインストール
http://brew.sh

MacTex, LyX, X11はすでに入っている状態で,ターミナルから
brew tap homebrew/x11
brew install xpdf

あとはLyx側で環境構成してアプリケーションの再起動をすれば完了.

dplyrチェーンでスケーリングするときの注意

注意ってほどではないんだが,分析するとき,データセットを基準化(標準化,Z変換,standardization,scale)することがある.
よく使うのはScale関数なんだけど,dplyrのチェーンで使うと余計なもの(Scaled:centre/scale)がついてくるのでなんとなく気持ち悪い.
Scale関数を使ってどんな影響があるのかわからないけど,普通に(x-mean(x))/sd(x)でやったほうがよろしい様子.
ってか,そもそも関数使うって発想が古い?

> cbind(rep(1:2,10), matrix(runif(20*10),ncol=10)) %>% 
+     tbl_df() %>% 
+     rename(grp=V1) %>%
+     mutate(grp=as.factor(grp)) %>% 
+     group_by(grp) %>>%
+     # scale関数つかったとき
+     (~mutate_at(.,vars(2:11), funs(scale)) %>% ungroup() %>% str(.) %>% print(.)) %>% 
+     # (x-mean(x))/sd(x)にしたとき
+     mutate_at(.,vars(2:11), funs((.-mean(.))/sd(.))) %>% ungroup() %>% str()
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':	20 obs. of  11 variables:
 $ grp: Factor w/ 2 levels "1","2": 1 2 1 2 1 2 1 2 1 2 ...
 $ V2 : num [1:10, 1] 0.38 0.839 -1.034 0.111 0.773 ...
  ..- attr(*, "scaled:center")= num 0.634
  ..- attr(*, "scaled:scale")= num 0.23
 $ V3 : num [1:10, 1] 0.817 -0.259 -1.136 -0.384 0.474 ...
  ..- attr(*, "scaled:center")= num 0.419
  ..- attr(*, "scaled:scale")= num 0.332
 $ V4 : num [1:10, 1] 0.451 -0.611 1.129 -1.104 -1.635 ...
  ..- attr(*, "scaled:center")= num 0.586
  ..- attr(*, "scaled:scale")= num 0.317
 $ V5 : num [1:10, 1] 0.0921 1.1026 1.1408 -0.2213 -1.4277 ...
  ..- attr(*, "scaled:center")= num 0.625
  ..- attr(*, "scaled:scale")= num 0.282
 $ V6 : num [1:10, 1] 0.567 -1.311 0.123 1.352 -0.772 ...
  ..- attr(*, "scaled:center")= num 0.436
  ..- attr(*, "scaled:scale")= num 0.275
 $ V7 : num [1:10, 1] -0.737 -1.362 -0.422 1.455 -0.821 ...
  ..- attr(*, "scaled:center")= num 0.544
  ..- attr(*, "scaled:scale")= num 0.264
 $ V8 : num [1:10, 1] 0.51 -2.427 0.653 -0.282 -1.424 ...
  ..- attr(*, "scaled:center")= num 0.493
  ..- attr(*, "scaled:scale")= num 0.332
 $ V9 : num [1:10, 1] -1.185 0.296 1.019 1.344 -0.895 ...
  ..- attr(*, "scaled:center")= num 0.488
  ..- attr(*, "scaled:scale")= num 0.341
 $ V10: num [1:10, 1] -0.935 0.782 1.396 -0.314 -0.407 ...
  ..- attr(*, "scaled:center")= num 0.343
  ..- attr(*, "scaled:scale")= num 0.314
 $ V11: num [1:10, 1] 1.241 -1.37 0.263 -1.209 -0.956 ...
  ..- attr(*, "scaled:center")= num 0.444
  ..- attr(*, "scaled:scale")= num 0.248
NULL
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':	20 obs. of  11 variables:
 $ grp: Factor w/ 2 levels "1","2": 1 2 1 2 1 2 1 2 1 2 ...
 $ V2 : num  0.38 0.839 -1.034 0.111 0.773 ...
 $ V3 : num  0.817 -0.259 -1.136 -0.384 0.474 ...
 $ V4 : num  0.451 -0.611 1.129 -1.104 -1.635 ...
 $ V5 : num  0.0921 1.1026 1.1408 -0.2213 -1.4277 ...
 $ V6 : num  0.567 -1.311 0.123 1.352 -0.772 ...
 $ V7 : num  -0.737 -1.362 -0.422 1.455 -0.821 ...
 $ V8 : num  0.51 -2.427 0.653 -0.282 -1.424 ...
 $ V9 : num  -1.185 0.296 1.019 1.344 -0.895 ...
 $ V10: num  -0.935 0.782 1.396 -0.314 -0.407 ...
 $ V11: num  1.241 -1.37 0.263 -1.209 -0.956 ...

WindowsUpdateがまたしても私のバッテリーを貪る件

9月のWindows Updateが配信されたようである.
出先でWindowsPCでプログラミングしていたら,ガンガンバッテリーが減っていく.
並列計算してたからしょうがないかとおもいつつ,計算が終わってもCPU使用率は高いまま.
これは,と思いだしググってみると,9月WindowsUpdate更新版に問題があるようだ.

一部のUpdateファイルを先に入れるといけるとかいうけど,なんでそんな面倒くさいことしないといけないの?
作業領域というか画面解像度でWinを使ってるにすぎない私は,さっさとMacbook Proの新しいヤツが出てくれることを心の底から願いつつ,
services.msc
を開いてWindowsUpdateを寝かせる.

家に帰ったらここを参考にしてみる.あるいは開きっぱなしにして時間に解決してもらうか.
http://blog.livedoor.jp/nichepcgamer/archives/1058461052.html