
9.4
分割と結合
137
1.
gather()
と
spread()
はなぜ完全に対称的でないのか。次の例に注意して調べなさい。
stocks <- tibble(
year = c(2015, 2015, 2016, 2016),
half = c( 1, 2, 1, 2),
return = c(1.88, 0.59, 0.92, 0.17)
)
stocks %>%
spread(year, return) %>%
gather("year", "return", `2015`:`2016`)
(ヒント:変数の型を調べて列名を考える。)
spread()
と
gather()
は両方とも
convert
引数をとる。これは何をするか。
2. 次のコードが失敗するのはなぜか。
table4a %>%
gather(1999, 2000, key = "year", value = "cases
")
#> combine_vars(vars, ind_list)
でエラー
:
#> Position must be between 0 and n
3. 次の
tibble
の
spread
がなぜ失敗するか。修正するには新たな列をどう追加すればよいか。
people <- tribble(
~name, ~key, ~value,
#-----------------|--------|------
"Phillip Woods", "age", 45,
"Phillip Woods", "height", 186, ...