Rで解析:記述統計の作業をお助け!解析データ再現のSPSSシンタックスを出力「descr」パッケージの紹介


記述統計はデータをまとめ、統計量を計算し傾向や性質を理解する重要な作業です。記述統計にはデータをまとめる多くの手法がありますが、まずはデータの出現数(分布)を把握することが重要かと思います。分布を把握することでデータの入力ミス等に気がつくこともあります。

しかし、市販の統計ソフトなどでデータの分布を把握する操作はやや煩雑で、目的にあった出力を得るためにSPSSなどではシンタックスを作成することもあります。その点、Rは自由度が高いので解析作業が非常に楽です。

これら作業を軽減できるかもしれない「descr」パッケージの紹介します。本パッケージではデータの分布をクロステーブル、グラフで表示するだけでなく、「Rで処理したデータをSPSSで再現しSPSSフォーマットで保存する」シンタックスを出力するコマンドが収録されています。本パッケージの最大の特徴かと思います。

まだまだ、大学では論文投稿などの関係からSPSSを利用されている方が多いと思います。RからSPSSへのデータ移行が楽になります。ぜひ、パッケージのコマンドを活用ください。

なお、Rで作成した20*30000のデータをシンタックスで再現することが出来ました。ただし、シンタックスを利用する際には「データが記述されたテキストファイルの保存場所」に注意してください。正しい場所にテキストファイルを保存しないとエラーになります。正しい保存場所はSPSSのエラーを確認してください。また、データラベルには日本語も使用可能です。日本語が含まれている場合はダブルクリックでシンタックスファイルを開くのではなく、SPSSのメニューよりファイル、シンタックス、エンコードにUTF-8を選択してください。

参考:SPSSでデータを作成
spssscripts

パッケージのバージョンは0.59-5。R version 3.2.1でコマンドを確認しています。


パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("descr")

実行コマンドの紹介

詳細はコマンドまたはパッケージヘルプを確認してください。

#パッケージの読み込み
library("descr")

#####準備#####################
#データ例の作成
#理解しやすいようクロステーブルが2*2になるデータ
TestData <- data.frame(Data1 = sample(paste0("Group", 1:2), 30, replace = TRUE),
                       Data2 = sample(paste0("Group", 1:2), 30, replace = TRUE))
##############################

#データをクロステーブルに集計:CrossTableコマンド
#出力される表内の数字はCell Contentsを参照してください
PlotCT <- CrossTable(TestData[, 1], TestData[, 2], drop.levels = TRUE, 
                     dnn = c(colnames(TestData[1]), colnames(TestData[2])))
#出現数をグラフで表示
plot(PlotCT)
#出現数をテーブルで表示
PlotCT

Cell Contents 
|-------------------------|
|                       N | 
| Chi-square contribution | 
|           N / Row Total | 
|           N / Col Total | 
|         N / Table Total | 
|-------------------------|
  
=================================
Data2
Data1     Group1   Group2   Total
---------------------------------
Group1         6       10      16
           0.025    0.017        
           0.375    0.625   0.533
           0.500    0.556        
           0.200    0.333        
---------------------------------
Group2         6        8      14
           0.029    0.019        
           0.429    0.571   0.467
           0.500    0.444        
           0.200    0.267        
---------------------------------
Total         12       18      30
             0.4      0.6        
=================================

#データフレームの内容を再現するspssシンタックスとRコマンド,データ内容を
#作業フォルダに出力:data.frame2txtコマンド
#SPSSでspssシンタックスをそのまま実行する際は「出力されたテキスト」の
#保存場所に注意してください,SPSSで出力されるエラーを確認することで解決すると思います
#各オプションは保存ファイル名の指定に使用します
data.frame2txt(TestData, datafile = "TestData.txt", r.codefile = "TestData.R",
               sps.codefile = "TestData.sps", df.name = "TestData")
             
#データの要約を表示:descrコマンド
descr(TestData)
Data1
Group1 Group2 
15     15 

Data2
Group1 Group2 
11     19 

#データの出現率を表示:freqコマンド
#グラフも合わせて出力されます
freq(TestData[, 1], y.axis = "percent")
TestData[, 1] 
    Frequency Percent
Group1        15      50
Group2        15      50
Total         30     100

出力例

・CrossTableコマンド
CrossTable

・freqコマンド
freq


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク