コマンドの複製

何度も同じような分析をするときには

統計処理を行うとき、クロス集計表や相関係数などの基礎分析を山のようにしなければならない時がある。

SPSSのようにマウスでポチポチしていると大変な手間*1コマンドだと、同じような分析を何度もする際に非常に楽だと言われている。

しかし、それでも、問番号を書き換えるのはめんどくさいし、ヒューマンエラーも発生する。

そういうときには、コマンドを複製していくのが合理的だと思う。 いくつか方法があるが、誰でもできるExcelを使った方法を紹介しようと思う。

サンプルコード

ここでは例示としてRのクロス集計表のコマンドを使ってみよう。

ct01<-table(d1$gender,d1$Q04_01)
ct01
res01<- chisq.test(ct01)
res01

性別とQ04が20問くらいあって手で打つのがめんどくさい、と仮定してコマンドを複製してみよう。

f:id:iDES:20190309233535p:plain

Exxelは"ct01"の右下を掴み、下方向へドラッグ&ドロップすると"ct02""ct03"と自動的に番号を振ってくれる。この性質を利用し、数字を書き換えなくてもExcelに自動でコマンドを複製させることができる。

区切りは「変化するところ」「変化しないところ」「変化するところ」と交互に入れていくだけである。

改行をするところには、<BR>タグを入れておく。 htmlで使う改行(break)の記号である。 最後は、 改行をするところには、<BR>タグを2回いれる。そうすると、前後を1行あけることができる。

エディタへコピー

エクセルで複製したコマンドをエディタへコピーする。 Windowsであればメモ帳でよい。

f:id:iDES:20190309233553p:plain

ここでする作業2つである。

  1. tabの置換
  2. html形式での保存

1. tabの置換

Excelからコピーすると妙な空白がある。 これはExcelがtab区切りという形式でデータがコピーされるためである。 このtab(空白)を取り除く必要がある。

まず、tabを範囲指定してコピーする。

f:id:iDES:20190309233623p:plain

そのあと、メニューから置換を選ぶ

f:id:iDES:20190309233641p:plain

検索する文字列に貼り付けでtabを入れる。

f:id:iDES:20190309233658p:plain

置換後の文字列には何も入れない。つまり何も入れないとtabの空白が詰められるのである。 最後に[すべて置換]を押す。 そうすると、以下のようになる。

f:id:iDES:20190309233729p:plain

空白がなくなぎゅっと埋まった感じになる。

2. html形式での保存

このファイルを[名前をつけて保存]する。

f:id:iDES:20190309233710p:plain

この際に、ファイル名を"〇〇.html"とする。文字コードUTF-8に変えておく。

html形式ファイルを開ける

保存したhtmlファイルをブラウザで開けると次のように表示される。

f:id:iDES:20190309233754p:plain

これをRかRStudioに張り付けるとコマンドとして使用できる。 SPSSシンタックスやstataなどにも使える。

*1:SPSSはクロス集計表は一気に出力できるので例外として