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パッケージを利用
#http://www.karada-good.net/analyticsr/r-77/を参照
library("pairsD3")
pairsD3(TestDF)
#データを作業フォルダに保存
write.csv(TestDF, "ファイル名.csv")
出力結果
・インタラクティブな散布図
快適な閲覧環境保持のため画像にしています。実際のコマンドではインタラクティブな散布図が出力られます。
Rで解析:インタラクティブな散布図作成!「pairsD3」パッケージ
http://www.karada-good.net/analyticsr/r-77/を参照
少しでも、あなたのウェブや実験の解析が楽になりますように!!
関連記事
-
-
Rで解析:日本語や日本地図などの操作にオススメ!「Nippon」パッケージの紹介
Rのパッケージにはオーストラリアやヨーロッパ、アメリカなどの特定地域に特化したパッケージが存在します
-
-
Rでウェブ解析:Google Search Consoleを操作!「searchConsoleR」パッケージ
ついに、RからSearch Consoleを操作できるパッケージが登場しました。Yahoo!もSSL
-
-
ここさえ押さえれば大丈夫! GoogleAnalyticsのDmensionとMetrics
GoogleAnalyticsとRを連携し、簡単にウェブ解析に必要な情報を取得する方法を紹介しました
-
-
Rでお遊び:シャーロット第12話予告編「約束」の感想とカラーパレット
「…では約束。帰ってくること。もう一度、会いましょう。」と友利奈緒のセリフで構成される、シャーロット
-
-
Rとウェブ解析:Rを使用し始めた時の困った時を思い出して。
Rを利用し始めた時を思い出しながら、使い始めに疑問に思ったことの一部を紹介します。 R