R: read_csvの使い方

R に組み込みの read.csv() という関数がありますが,readr::read_csv() の方が使いやすく改良されていて,高速に動作します。

tibble はデータフレームを改善するために提案されたデータ保持形式で,tibble というパッケージで定義されています。基本的にはR の基本のデータフレームと同様の使い方ができます。

tibble を使うためには,パッケージ tibble を読み込むか,tidyverse というパッケージ群を読み込みます。 パッケージの読み込みには library() という関数を使います

readrパッケージの専用関数でファイルを読み込む場合、各列の読み込みの型を関数のオプションとして指定できます。データ型の指定は、col_typesで指定します。簡単に指定できる省略記法もあります。必要な列だけ指定することができます。

型を指定する方法

ファイルを読み込むとき、各列の読み込みの型をcol_typesオプションで、データ型をリストで順番に指定します。文字列col_charactor()整数col_integer()実数col_double()列を読み込まないcol_skip()

他にも、時間・日付・ファクターなどのデータ型を明示的に指定することができます。

1: $ cat test.tsv 
2: name    data1   data2
3: aaa    1   1.0
4: bbb    2   2.0
5: ccc    3   3.0
1: > test_data <- read_tsv("test.tsv", col_types = list(col_character(), col_integer(), col_double()))
2: 
3: > test_data
4: # A tibble: 3 x 3
5:   name  data1 data2
6:   <chr> <int> <dbl>
7: 1 aaa       1     1
8: 2 bbb       2     2
9: 3 ccc       3     3

省略して指定する方法

col_typesオプションでよく使う省略記法です。文字列で指定します。文字列“c”整数“i”実数“d”日付“D”列を読み込まない“_”

上記と同じサンプルを読み込んだ場合、キャラクター・整数・実数の順に列を読み込む場合は、”cid”と指定します。

1: >test_data <- read_tsv("test.tsv", col_types = "cid")
2: 
3: > test_data
4: # A tibble: 3 x 3
5:   name  data1 data2
6:   <chr> <int> <dbl>
7: 1 aaa       1     1
8: 2 bbb       2     2
9: 3 ccc       3     3

必要な列だけ指定する方法

必要な列のみ指定したい場合は、col_typesオプションで列名指定します。

1: >test_data <- read_tsv("test.tsv", col_types = cols(data1 = col_integer()))
2: 
3: > test_data
4: # A tibble: 3 x 3
5:   name  data1 data2
6:   <chr> <int> <dbl>
7: 1 aaa       1     1
8: 2 bbb       2     2
9: 3 ccc       3     3

コメント

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