始める無料で始める

collectors を使った col_types

インポートする列の型を設定するもう一つの方法は、collector を使うことです。collector 関数を list() に入れて read_ 系関数の col_types 引数に渡すと、各列の値をどのように解釈するかを指示できます。

collector 関数の完全な一覧は collector のドキュメントを参照してください。この演習で必要な collector 関数は次の2つです。

  • col_integer(): 列を整数として解釈します。
  • col_factor(levels, ordered = FALSE): 列を、指定した levels を持つ factor として解釈します。

この演習では、1 行目に列名がなく、タブ区切りのファイル hotdogs.txtview)を使います。

この演習はコースの一部です

Rでのデータインポート入門

コースを見る

演習の手順

  • hotdogs は列型を設定せずに作成されています。summary() 関数でその要約を確認してください。
  • 2 つの collector 関数 facint が用意されています。どの型を収集(解釈)しているか確認してみましょう。
  • 2 回目の read_tsv() 呼び出しで、col_types 引数を編集します。list()fac, int, int を渡し、1 列目を factor、2 列目と 3 列目を整数としてインポートしてください。
  • hotdogs_factorsummary() を作成し、hotdogs の要約と比較しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import without col_types
hotdogs <- read_tsv("hotdogs.txt", col_names = c("type", "calories", "sodium"))

# Display the summary of hotdogs
___

# The collectors you will need to import the data
fac <- col_factor(levels = c("Beef", "Meat", "Poultry"))
int <- col_integer()

# Edit the col_types argument to import the data correctly: hotdogs_factor
hotdogs_factor <- read_tsv("hotdogs.txt",
                           col_names = c("type", "calories", "sodium"),
                           col_types = NULL)

# Display the summary of hotdogs_factor
___
コードを編集して実行