collectors を使った col_types
インポートする列の型を設定するもう一つの方法は、collector を使うことです。collector 関数を list() に入れて read_ 系関数の col_types 引数に渡すと、各列の値をどのように解釈するかを指示できます。
collector 関数の完全な一覧は collector のドキュメントを参照してください。この演習で必要な collector 関数は次の2つです。
col_integer(): 列を整数として解釈します。col_factor(levels, ordered = FALSE): 列を、指定したlevelsを持つ factor として解釈します。
この演習では、1 行目に列名がなく、タブ区切りのファイル hotdogs.txt(view)を使います。
この演習はコースの一部です
Rでのデータインポート入門
演習の手順
hotdogsは列型を設定せずに作成されています。summary()関数でその要約を確認してください。- 2 つの collector 関数
facとintが用意されています。どの型を収集(解釈)しているか確認してみましょう。 - 2 回目の
read_tsv()呼び出しで、col_types引数を編集します。list()にfac,int,intを渡し、1 列目を factor、2 列目と 3 列目を整数としてインポートしてください。 hotdogs_factorのsummary()を作成し、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
___