Rで解析:データフレームに関するコマンド

Rの解析に役に立つ記事
スポンサーリンク

ウェブ解析にRの利用が増えてきていると思いますが、まだまだ普及しているとは言いがたいかと思います。これから、ウェブ解析にRを利用を考えている方にぜひ利用していただきたいRのデータフレームに関するコマンドを紹介します。データフレームの操作を押さえておくと、発展的な作業も行えるようになります。

以下のデータを例とします。

###データの準備#####
#Point:文字列はshift + 2を押してダブルクウォンテーションで囲みます。
#Point:欠損値はNAで表します。
Day <- c("5月07日", "5月08日", "5月09日", "5月10日", "5月11日",
         "5月12日", "5月13日", "5月14日", "5月15日")
Sales <- c(5, 2, NA, 4, NA, 5, 6, 7, 8)
Cost <- c(2000, 400, 0, 800, 0, 2000, 2200, 2400, 2600)
########

###データのデータフレームへの変換#####
AnaDate <- data.frame(Day, Sales, Cost)
########

AnaDate
      Day Sales Cost
1 5月07日     5 2000
2 5月08日     2  400
3 5月09日    NA    0
4 5月10日     4  800
5 5月11日    NA    0
6 5月12日     5 2000
7 5月13日     6 2200
8 5月14日     7 2400
9 5月15日     8 2600
スポンサーリンク

データフレーム処理関数の紹介

データの内容確認: summary

summary(AnaDate)

      Day        Sales            Cost
 5月07日:1   Min.   :2.000   Min.   :   0
 5月08日:1   1st Qu.:4.500   1st Qu.: 400
 5月09日:1   Median :5.000   Median :2000
 5月10日:1   Mean   :5.286   Mean   :1378
 5月11日:1   3rd Qu.:6.500   3rd Qu.:2200
 5月12日:1   Max.   :8.000   Max.   :2600
 (Other):3   NA's   :2  

データ内の欠損値の数を確認: 合計のsumとNA値確認のis.na

sum(is.na(AnaDate))

 [1] 2

#データ内に欠損値が2個あることが示されます。

指定した行、列の参照:カッコ演算子 [i, j]

*iが列、jが行となります。

データの2行目を抽出してみます。

AnaDate[complete.cases(AnaDate), ] 

   Day  Sales Cost
1 5月07日  5  2000
2 5月08日  2   400
4 5月10日   4    800
6 5月12日   5   2000
7 5月13日   6   2200
8 5月14日   7   2400
9 5月15日   8   2600

欠損値を含む3と5列目が削除されたデータが表示されます。

データフレームの結合: 横に結合するrbindと縦に結合するcbind

rbind(AnaDate, AnaDate)

     Day  Sales Cost
1  5月07日     5 2000
2  5月08日     2  400
3  5月09日    NA    0
4  5月10日     4  800
5  5月11日    NA    0
6  5月12日     5 2000
7  5月13日     6 2200
8  5月14日     7 2400
9  5月15日     8 2600
10 5月07日     5 2000
11 5月08日     2  400
12 5月09日    NA    0
13 5月10日     4  800
14 5月11日    NA    0
15 5月12日     5 2000
16 5月13日     6 2200
17 5月14日     7 2400
18 5月15日     8 2600

cbind(AnaDate, AnaDate) 

  Day Sales Cost Day   Sales Cost
1 5月07日 5 2000 5月07日 5   2000
2 5月08日 2  400 5月08日 2    400
3 5月09日 NA   0 5月09日 NA     0
4 5月10日 4  800 5月10日 4    800
5 5月11日 NA   0 5月11日 NA     0
6 5月12日 5 2000 5月12日 5   2000
7 5月13日 6 2200 5月13日 6   2200
8 5月14日 7 2400 5月14日 7   2400
9 5月15日 8 2600 5月15日 8   2600

行または列に対しての一括処理: applyコマンド

関数内のmeanを変更することで様々な処理が可能となります。例では平均を計算しています。

#列に対する処理
apply(AnaDate[, 2:ncol(AnaDate)], 1, mean, na.rm=TRUE)
[1] 1002.5  201.0    0.0  402.0    0.0 1002.5 1103.0 1203.5 1304.0

#行に対する処理
apply(AnaDate[, 2:ncol(AnaDate)], 2, mean, na.rm=TRUE)
      Sales        Cost
   5.285714 1377.777778 

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

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