読者です 読者をやめる 読者になる 読者になる

いずにゃんの研究日記

専門性を広げるための練習場

はじめてのdplyr(3):適切なデータ表示になるデータフレームの便利版

R

チートシートのいちばん最初,"Syntax"の部分で紹介されている,大規模データを扱う時に重宝するデータセットの作成方法について説明する。

次のような行数の多いデータセットを作成してみる。以下のコードをコピペして実行すればデータができる。

dat <- data.frame(maru=rep("ずら",100),ruby=rep("ピギィ",100), yoshiko=rep("ギラン",100),you=rep("ヨーソロー",100))

#データとして使用されている言葉の意味はアニメ「ラブライブ!サンシャイン!!」を視聴すると分かる

これは100行にもわたるので,datと打ってデータセット全部を表示させるのに躊躇するだろう。なので,

head(dat)
  maru   ruby yoshiko        you
1 ずら ピギィ  ギラン ヨーソロー
2 ずら ピギィ  ギラン ヨーソロー
3 ずら ピギィ  ギラン ヨーソロー
4 ずら ピギィ  ギラン ヨーソロー
5 ずら ピギィ  ギラン ヨーソロー
6 ずら ピギィ  ギラン ヨーソロー

として最初の数行を表示させるのが普通と思う。

dplyrではtbl_df( )を使ってもっとデータ表示に便利なデータフレームに変換できる。

library(dplyr)

dat <- tbl_df(dat)
dat
# A tibble: 100 × 4
    maru   ruby yoshiko
   <chr>  <chr>   <chr>
1   ずら ピギィ  ギラン
2   ずら ピギィ  ギラン
3   ずら ピギィ  ギラン
4   ずら ピギィ  ギラン
5   ずら ピギィ  ギラン
6   ずら ピギィ  ギラン
7   ずら ピギィ  ギラン
8   ずら ピギィ  ギラン
9   ずら ピギィ  ギラン
10  ずら ピギィ  ギラン
# ... with 90 more rows, and
#   1 more variables:
#   you <chr>

このように,画面の大きさを考慮して変数youは省略され,行数も10行のみで残り90行あるよ,との表示が出る。

正確にはtibbleパッケージだが,dplyrを呼び出してあれば,データフレームを作成する所からこのタイプのものにできる。このさい,dataframeをつなぐ部分が.ではなく_である所がポイントである。チートシートでは,"Reshaping Data"の部分に出てくる。(20170114追記)

dat2 <- data_frame(maru=rep("ずら",100), ruby=rep("ピギィ",100), yoshiko=rep("ギラン",100), you=rep("ヨーソロー",100))

dat2もtbl_df( )で変換されたdatと同様のデータ表示となる。