Rで解析:データを解析する前におこなっている作業の紹介


データを本格的に解析する前におこなっている「データの特徴を把握する作業」のコマンド紹介です。内容はデータの作成、ファイルの読み込み、データ構造、要約、分散、ヒストグラム、インタラクティブな散布図、データを作業フォルダにcsvで保存するコマンドです。

実行コマンドはR version 3.2.2で確認しています。


実行コマンド

詳細はコメント、コマンドのヘルプを確認してください。

###データ例の作成#####
n <- 1000
TestDF <- data.frame(Group = sample(paste0("Group", 1:10), n, replace = TRUE),
                     Data1 = sample(c(1:100, NA), n, replace = TRUE),
                     Data2 = rnorm(n, mean = 0, sd = 1),
                     Data3 = sample(1:0, n, replace = TRUE),
                     Data4 = sample(1:100, n, replace = TRUE))
########

###ファイルからデータを読み込む場合#####
#ダイアログでファイルパスを取得
library("tcltk")
FilePass <- paste0(as.character(tkgetOpenFile(title = "ファイルを選択",
                                              filetypes = '{"読み込みファイル" {"*.*"}}',
                                              initialfile = c("*.*"))))
###csv####
AnaData <- read.csv(FilePass)
###エクセル#####
library("XLConnect")
#読み込みシートを指定:sheetオプション
AnaData <- readWorksheetFromFile(FilePass, sheet = 1)
###SPSS#####
library("foreign")
AnaData <- read.spss(FilePass, use.value.labels = TRUE, to.data.frame = TRUE)
###Stata#####
#Ver13以降のファイルを読み込めます
library(readstata13)
AnaData <- read.dta13(FilePass)
########

#まずはデータの構造を確認
str(TestDF)
'data.frame':	1000 obs. of  5 variables:
$ Group: Factor w/ 10 levels "Group1","Group10",..: 8 10 10 1 9 6 5 6 1 2 ...
$ Data1: int  44 61 66 95 77 23 9 61 28 98 ...
$ Data2: num  -0.6739 0.0527 -0.1316 0.914 -0.4904 ...
$ Data3: int  1 1 1 1 0 0 1 0 1 0 ...
$ Data4: int  13 31 33 2 59 85 16 91 81 27 ...

#要約
summary(TestDF)
Group         Data1            Data2              Data3           Data4       
Group1 :119   Min.   :  1.00   Min.   :-3.89762   Min.   :0.000   Min.   :  1.00  
Group7 :116   1st Qu.: 27.00   1st Qu.:-0.65893   1st Qu.:0.000   1st Qu.: 26.00  
Group5 :106   Median : 51.00   Median : 0.04693   Median :1.000   Median : 51.00  
Group9 :102   Mean   : 51.13   Mean   : 0.02634   Mean   :0.502   Mean   : 50.74  
Group8 : 99   3rd Qu.: 76.00   3rd Qu.: 0.67041   3rd Qu.:1.000   3rd Qu.: 76.00  
Group3 : 98   Max.   :100.00   Max.   : 3.51734   Max.   :1.000   Max.   :100.00  
(Other):360   NA's   :9

#Data3を0;NO,1;YESの質的データに修正
TestDF[, 4] <- factor(TestDF[, 4], label = c("NO", "YES"))

#データの構造を再確認
str(TestDF)
'data.frame':	1000 obs. of  5 variables:
$ Group: Factor w/ 10 levels "Group1","Group10",..: 8 10 10 1 9 6 5 6 1 2 ...
$ Data1: int  44 61 66 95 77 23 9 61 28 98 ...
$ Data2: num  -0.6739 0.0527 -0.1316 0.914 -0.4904 ...
$ Data3: Factor w/ 2 levels "NO","YES": 2 2 2 2 1 1 2 1 2 1 ...
$ Data4: int  13 31 33 2 59 85 16 91 81 27 ...

#要約を再確認
summary(TestDF)
     Group         Data1            Data2          Data3         Data4       
Group1 :119   Min.   :  1.00   Min.   :-3.89762   NO :498   Min.   :  1.00  
Group7 :116   1st Qu.: 27.00   1st Qu.:-0.65893   YES:502   1st Qu.: 26.00  
Group5 :106   Median : 51.00   Median : 0.04693             Median : 51.00  
Group9 :102   Mean   : 51.13   Mean   : 0.02634             Mean   : 50.74  
Group8 : 99   3rd Qu.: 76.00   3rd Qu.: 0.67041             3rd Qu.: 76.00  
Group3 : 98   Max.   :100.00   Max.   : 3.51734             Max.   :100.00  
(Other):360   NA's   :9

#分散を確認
apply(TestDF, 2, sd, na.rm = TRUE)
Group      Data1      Data2      Data3      Data4 
   NA 28.8084269  0.9732111         NA 28.5574157 
警告メッセージ: 
1:  var(if (is.vector(x)) x else as.double(x), na.rm = na.rm) で: 
  強制変換により NA が生成されました 
2:  var(if (is.vector(x)) x else as.double(x), na.rm = na.rm) で: 
  強制変換により NA が生成されました

#ヒストグラムで分布の確認
par(mfrow = c(2, 3))
for(n in seq(ncol(TestDF))){
hist(as.integer(TestDF[, n]), col = "#4b61ba", main = colnames(TestDF[n]), breaks = "Scott")
}

#インタラクティブな散布図で確認
#pairsD3パッケージを利用
#https://www.karada-good.net/analyticsr/r-77/を参照
library("pairsD3")
pairsD3(TestDF)

#データを作業フォルダに保存
write.csv(TestDF, "ファイル名.csv")

出力結果

・ヒストグラムで分布の確認
histEx

・インタラクティブな散布図
快適な閲覧環境保持のため画像にしています。実際のコマンドではインタラクティブな散布図が出力られます。

Rで解析:インタラクティブな散布図作成!「pairsD3」パッケージ
https://www.karada-good.net/analyticsr/r-77/を参照

pairsD3


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

スポンサードリンク

おすすめコンテンツ


スポンサードリンク