R (tidyverse), read_tsv

tidyverse には、タブ区切りテキスト (tsv) を読み込むための関数 read_tsv() が使えます。

library(tidyverse) # パッケージを読み込む。

input_data <- read_tsv("input_data.tsv")

上記の例では、input_data.tsv という名前のファイルを読み込んで、 input_data に格納しています。(csv ファイルであれば、read_csv() 関数で読み込みます。)

> input_data
# A tibble: 3 x 3
  id    sample1 sample2
  <chr>   <dbl>   <dbl>
1 AAA         1       4
2 BBB         2       5
3 CCC         3       6

読み込んだファイルは、従来のデータフレームではなく、 tibble という形式のオブジェクトになります。tibble は下記のような特徴があります。

  • 行名 (rownames) を持たない。(列名は持っている)
  • 列ごとに推論された型を持つ。
  • オブジェクトを表示させると、上から10行が表示される。

サイズの大きいデータの場合、データの先頭だけ表示されるのは便利です。読み込みも早いので、これだけでも tidyverse を使うメリットがあると思います。

よく使うオプションとしては、下記のものがあります。*その他は、help(read_tsv) で確認。

  • skip: ヘッダーが不要だったり、1行目がコメント行だったりするとき。
    • 例:skip = 1
  • col_names: 列名を指定したいとき。
    • 例:col_names = c("id", "sample1", "sample2")
  • col_types: 型推論がうまくいかなかったとき。
    • 例:col_types = cols(id = col_character())
input_data <- read_tsv("input_data.tsv", skip = 1,
                       col_names = c("id", "sample1", "sample2"),
                       col_types = cols(id = col_character(),
                                        sample1 = col_double()))

本家のチートシートが大変参考になります。

Data Import:: CHEAT SHEET

https://github.com/rstudio/cheatsheets/blob/master/data-import.pdf
 

投稿者:

Atsushi Doi

株式会社セルイノベーター、主任研究員。理学博士。山口大学大学院理工学研究科修了。東京大学医科学研究所ヒトゲノム解析センターの特任助手を経て、株式会社GNIに主任研究員として勤務。その後、株式会社セルイノベーターの立ち上げに参加し、現在に至る。専門は、バイオインフォマティクス、おもにシステムバイオロジー。