
148
9
章
tidyr
によるデータ整理
separate(code, c("new", "var", "sexage")) %>%
select(-new, -iso2, -iso3) %>%
separate(sexage, c("sex", "age"), sep = 1)
1. このケーススタディでは、
na.rm = TRUE
として正しい値があるかどうかを確認しやすくした。
これは妥当か。このデータセットで欠損値がどう表されていたか考えよう。これらは暗黙的欠
損値か。
NA
と0との違いは何か。
2.
mutate()
のステップ(
mutate(key = stringr::str_replace(key, "newrel", "new_rel"))
)
を無視すると何が起こるか。
3.
iso2
と
iso3
が
country
と重複していると述べたが、これを確認しなさい。
4. 各国、年、性別について、結核の総症例を計算しなさい。データの情報がよくわかるよう可視
化しなさい。
9.7
非整理データ
次のテーマに移る前に、非整理データについて説明しておきましょう。本章の初めで、否定的な
意味を込めて「滅茶苦茶」という言葉を非整理データを指すのに使いました。これは言い過ぎでしょ
う。非整理データ
にも多くの有用かつ信頼性のあるデータ構造があります。他のデータ構造を使う
主な理由は次の2つです。
●
他の表現に性能上またはスペースに関する大幅な利点がある。
●
整理データの方式とは大きく異なるデータ格納方