6講:R言語にオリジナルなデータ(エクセル、CSV)を読み込ませるには?

 しまうまのRでデータ分析入門【全6講】では、統計解析用のプログラミング言語Rで重回帰分析を行い、R MarkdownでPDF化するまでを解説します。

 いままでは練習用データを用いて分析を行ってきました。けれども、レポートや卒論ではオリジナルなデータを用いて分析を進めなければいけません。

 最後にRにデータをインポートさせ、ちょっとした編集を行う方法をお教えします。これで「Rでデータ分析入門」は終わりです。

1. データをディレクトリに移動させる

 Rでは、分析するデータをディレクトリに入れる必要があります。

 もし作業しているディレクトリがわからなくなったら、次のコードを実行することで場所がわかります。↓

#ディレクトリの確認
getwd()

 これを実行すると、例えば次が出力されます。これは「デスクトップ(Desktop)」にある「Hello_R」というファイルが作業ディレクトリであることを意味します。↓

> getwd()
[1] "/Users/(ユーザー名)/Desktop/Hello_R"

2. データの読み込み

(1)CSV

 CSVデータ(データ名の最後が.csv)の場合、次のコードを打つことで読み込めます。

#CSVの読み込みと命名
データセット名(任意) <- read_csv("csvデータの名前")

 「不正なマルチバイト文字があります」というエラーができたら、最後に「,fileEncoding=”CP932″」を付けると解決するときがあります。

 例えば、読み込むデータが「data0.csv」で、名前をdata1にして、エラー回避をするなら、下のようになります。

data1 <- read_csv("data0.csv" ,fileEncoding="CP932" )

(2)エクセル

 エクセルの場合は、パッケージ「readxl」をインストールして呼び出す必要があります。

#readxlパッケージのインストール
install.packages("readxl")
 
#readxlパッケージの呼び出し
library(readxl)

 そして、次のコードを打ち込むと、エクセルファイルが読み込まれます。↓

#エクセルの読み込みと命名
データセット名(任意) <- read_excel("エクセルファイルの名前")
 
#具体例
data0 <- read_excel("data0.xlsx")

3. データの確認

 次に、ちゃんとデータが読み込めているのか、元データを直接みて確認しましょう。文字形式、整数値かどうか、エラーの有無が確認できます。

#data0の冒頭6行の確認
head(data0)

#冒頭100行の確認
data0

 記述統計で確認するなら↓です。平均では単位、最大最小値では異常値の問題に気づけます。

#パッケージの呼び出し
library(summarytools)
 
#data0の記述統計を確認
descr(data0)

4. データの前処理:新しい変数の作成

(1)前処理でやりたいこと

 例えば、いくつかの国の「GDP」と「人口」のデータがあったとしましょう。国ごとに豊かさを比べるなら

  • 一人当たりGDP=GDP÷人口

と考えるのが適切です。このとき、いまある「GDP」と「人口」に加えて「GDP/人口」のデータを作りたいです。これはつぎのようにします。

(2)パッケージtidyverseのインストール

 まずtidyverseというパッケージを呼び出します。

#呼び出し
library(tidyverse)

(3)パイプ処理

 このパッケージにある多くの機能のうち一つが「パイプ%>%」です。パイプは、関数にオプジェクトを代入することができます。

 例えば、関数F、オブジェクトAであれば、下のように書けます。↓

#数学的な表現
F(A)
 
#パイプ%>%での表現
A  %>% F()

 この表現のいいところは、まずAを関数Hに入れて、それを関数Gにいれて、それを関数FにいれたものをBと名付けるを、次のように表現できる点です。↓

#数学的な表現
B <- F(G(H(A)))
 
#パイプを用いた処理
B <-
  A %>%
    H()%>%
      G()%>%
        F()

 ↑実際の関数はFの一文字で終わることはありませんから、数学的な表現ではとても長い行が必要になります。一方で、パイプを用いるとそれぞれの関数が分けて表現されていますから、とても読みやすくなるのです。

(4)新しい変数を追加する

 さて、もともと「data1」に「gdp(GDP)」と「pop(人口)」のデータがあったとしましょう。ここに「gdp_pop(一人当たり人口)」の変数を追加し、新しい「data2」を作成することは、次のように書けます。↓

#一人当たりGDP(gdp_pop)を、data1のgdp÷popで作成し、それをdata1につけて(mutate)、data2とする
data2 <-
  data1 %>%
    mutate(gdp_pop = gdp / pop)

(補足)

 少々無理やりパイプ処理を入れてしまいました。けれども、わりと役立つので使ってみてください。

#パッケージの起動
library(wooldridge)
 
#散布図
wage2 %>% 
  ggplot(aes(x = sduc, y = wage)) +
  geom_point()
 
#wage2はwooldridgeにあるデータセット
#詳しくは3講へ
 
#回帰分析
lm(data=wage2, wage ~ educ  + IQ  + black)%>% 
summary()
#詳しくは4講へ

4. さいごに

 「データ分析は前処理が8割」との格言もあり、ここが一番大変なところです。今回は新しい変数を作っただけですが、余計なセルの処理や日本語によるエラーなどが多く発生します。頑張ってください。

 それではまたどこかで!

あとがき

 しまうまです。このたびは「Rでデータ分析入門」を読んでいただきありがとうございました。この企画のコンセプトは「はじめてRに触る人が基本的な記述統計の分析、重回帰分析して、さらに洗練されたデザインのレポートを生成するまでの勉強時間を圧縮する!」でした。想定していた読者は、統計学の取得単位ゼロ、当然Rを使う授業の受講経験もないのに、Rで統計分析するゼミに入り、苦労した昔のしまうまです。同じような人の助けになれれば幸いです。

参考・おすすめサイト

コメント欄 お気軽にコメントをお寄せください!

タイトルとURLをコピーしました