本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.