R แƒžแƒแƒ™แƒ”แƒขแƒ˜ tidyr แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ pivot_longer แƒ“แƒ pivot_wider

แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ˜แƒก R แƒ”แƒœแƒแƒจแƒ˜ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒจแƒ˜ - แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜.
แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ–แƒฃแƒกแƒข แƒคแƒแƒ แƒ›แƒแƒจแƒ˜ แƒ›แƒแƒงแƒ•แƒแƒœแƒ.

แƒฃแƒ™แƒ•แƒ” แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ Habrรฉ-แƒ–แƒ” แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ”แƒซแƒฆแƒ•แƒœแƒ”แƒ‘แƒ แƒแƒ› แƒžแƒแƒ™แƒ”แƒขแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ“แƒ”แƒ‘แƒ 2015 แƒฌแƒšแƒ˜แƒ—. แƒ“แƒ แƒ›แƒ˜แƒœแƒ“แƒ แƒ’แƒ˜แƒ—แƒฎแƒ แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒฅแƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ“แƒฆแƒ˜แƒก แƒฌแƒ˜แƒœ แƒ’แƒแƒ›แƒแƒแƒชแƒฎแƒแƒ“แƒ แƒ›แƒ˜แƒกแƒ›แƒ แƒแƒ•แƒขแƒแƒ แƒ›แƒ แƒฐแƒ”แƒ“แƒšแƒ˜ แƒ•แƒ˜แƒ™แƒฐแƒ”แƒ›แƒ›แƒ.

R แƒžแƒแƒ™แƒ”แƒขแƒ˜ tidyr แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ pivot_longer แƒ“แƒ pivot_wider

แƒกแƒฏ.แƒ™.: แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ“แƒ”แƒ‘แƒ collect() แƒ“แƒ spread()?

แƒฐแƒ”แƒ“แƒšแƒ˜ แƒ•แƒ˜แƒ™แƒฐแƒ”แƒ›แƒ˜: แฒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“. แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒแƒ  แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ›แƒแƒ—แƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒแƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ”แƒœ แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜ แƒงแƒแƒคแƒœแƒแƒก แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒš แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒจแƒ˜.

แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก

แƒ—แƒฃ แƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ— แƒฉแƒ”แƒ›แƒ˜ แƒ“แƒ”แƒžแƒ”แƒจแƒ ะธ youtube แƒแƒ แƒฎแƒ”แƒ‘แƒ˜. แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ”แƒซแƒฆแƒ•แƒœแƒ”แƒ‘แƒ R แƒ”แƒœแƒแƒก.

TidyData แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ

แƒ›แƒ˜แƒ–แƒแƒœแƒ˜ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ โ€” แƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ’แƒ แƒ”แƒ— แƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒกแƒ˜แƒกแƒฃแƒคแƒ—แƒแƒ•แƒ” แƒคแƒแƒ แƒ›แƒแƒจแƒ˜ แƒ›แƒแƒงแƒ•แƒแƒœแƒแƒจแƒ˜. แƒ–แƒฃแƒกแƒขแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒกแƒแƒ“แƒแƒช:

  • แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒจแƒ˜.
  • แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ“แƒแƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜.
  • แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ แƒ˜แƒก แƒฃแƒฏแƒ แƒ”แƒ“แƒ˜.

แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒจแƒ˜.

แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒ˜แƒก tidyr แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜

tidyr แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ‘แƒšแƒ˜แƒแƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

  • fill() - แƒกแƒ•แƒ”แƒขแƒจแƒ˜ แƒ“แƒแƒ™แƒแƒ แƒ’แƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒ แƒฌแƒ˜แƒœแƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒ—;
  • separate() โ€” แƒงแƒแƒคแƒก แƒ”แƒ แƒ— แƒ•แƒ”แƒšแƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒแƒ“ แƒ’แƒแƒ›แƒงแƒแƒคแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—;
  • unite() โ€” แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒ”แƒšแƒ˜แƒก แƒ”แƒ แƒ—แƒจแƒ˜ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก separate();
  • pivot_longer() โ€” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒ’แƒ แƒซแƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜;
  • pivot_wider() - แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜. แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ pivot_longer().
  • gather()แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ โ€” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒ’แƒ แƒซแƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜;
  • spread()แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ - แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜. แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ gather().

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒ’แƒ แƒซแƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒžแƒ˜แƒ แƒ˜แƒฅแƒ˜แƒ—

แƒแƒ“แƒ แƒ”, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ แƒแƒ› แƒขแƒ˜แƒžแƒ˜แƒก แƒขแƒ แƒแƒœแƒกแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก gather() ะธ spread(). แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒฌแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒฎแƒ“แƒ, แƒ แƒแƒ› แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ—แƒ แƒฃแƒ›แƒ แƒแƒ•แƒšแƒ”แƒกแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒแƒ•แƒขแƒแƒ แƒ˜แƒก แƒฉแƒแƒ—แƒ•แƒšแƒ˜แƒ—, แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒแƒจแƒ™แƒแƒ แƒ แƒ˜แƒงแƒ แƒ“แƒ แƒ˜แƒฌแƒ•แƒ”แƒ•แƒ“แƒ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”แƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒžแƒแƒ•แƒœแƒแƒจแƒ˜ แƒ“แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒแƒจแƒ˜, แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ แƒฎแƒ“แƒ”แƒ‘แƒ. แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒ แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒ’แƒ แƒซแƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒขแƒแƒ›แƒ“แƒ” แƒ“แƒ แƒžแƒ˜แƒ แƒ˜แƒฅแƒ˜แƒ—.

แƒแƒ›แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒฅ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒ”แƒ›แƒแƒขแƒ แƒแƒ แƒ˜ แƒแƒฎแƒแƒšแƒ˜, แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒฎแƒแƒšแƒ˜ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒ˜ pivot_longer() ะธ pivot_wider() แƒจแƒ—แƒแƒ’แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ˜แƒ— cdata, แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒฏแƒแƒœ แƒ›แƒแƒฃแƒœแƒขแƒ˜แƒกแƒ แƒ“แƒ แƒœแƒ˜แƒœแƒ แƒ–แƒฃแƒ›แƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ .

tidyr 0.8.3.9000-แƒ˜แƒก แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ

แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜, แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ 0.8.3.9000, แƒกแƒแƒ“แƒแƒช แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜, แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ™แƒแƒ“แƒ˜.

devtools::install_github("tidyverse/tidyr")

แƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒ แƒแƒก, แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ GitHub-แƒ–แƒ” แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜.

แƒแƒฎแƒแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒซแƒœแƒ”แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒซแƒ•แƒ”แƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ แƒแƒฎแƒแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก; แƒฃแƒ™แƒ”แƒ— แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“ แƒแƒ•แƒ˜แƒฆแƒ”แƒ‘ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก แƒซแƒ•แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒฎแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. pivot_*() แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜.

แƒ’แƒแƒ“แƒแƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜ แƒ’แƒ แƒซแƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜.

แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ

# example
library(dplyr)
stocks <- data.frame(
  time = as.Date('2009-01-01') + 0:9,
  X = rnorm(10, 0, 1),
  Y = rnorm(10, 0, 2),
  Z = rnorm(10, 0, 4)
)

# old
stocks_gather <- stocks %>% gather(key   = stock, 
                                   value = price, 
                                   -time)

# new
stocks_long   <- stocks %>% pivot_longer(cols      = -time, 
                                       names_to  = "stock", 
                                       values_to = "price")

แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒก แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒ.

แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ

# old
stocks_spread <- stocks_gather %>% spread(key = stock, 
                                          value = price) 

# new 
stock_wide    <- stocks_long %>% pivot_wider(names_from  = "stock",
                                            values_from = "price")

แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒ แƒแƒ› แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒจแƒ˜ pivot_longer() ะธ pivot_wider(), แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜_ ะธ แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜_แƒ›แƒ“แƒ” แƒ›แƒแƒ—แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ‘แƒ แƒญแƒงแƒแƒšแƒ”แƒ‘แƒจแƒ˜.

แƒชแƒฎแƒ แƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒแƒ แƒ™แƒ•แƒ˜แƒแƒ—, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ“แƒแƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒแƒฎแƒแƒš แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒแƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒ–แƒ” แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜.

R แƒžแƒแƒ™แƒ”แƒขแƒ˜ tidyr แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ pivot_longer แƒ“แƒ pivot_wider

แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒกแƒ’แƒแƒœ

แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ”แƒฅแƒกแƒขแƒ˜ แƒแƒ“แƒแƒžแƒขแƒแƒชแƒ˜แƒฃแƒ แƒ˜แƒ, แƒ›แƒ” แƒ•แƒ˜แƒขแƒงแƒแƒ“แƒ˜, แƒ แƒแƒ› แƒฃแƒคแƒแƒกแƒ แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒช แƒ™แƒ˜ แƒ•แƒ˜แƒœแƒ˜แƒ”แƒขแƒ”แƒ‘แƒ˜ tidyverse แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ•แƒ”แƒ‘แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ“แƒแƒœ.

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒ’แƒ แƒซแƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

pivot_longer () โ€” แƒแƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ”แƒ‘แƒก แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒ—.

R แƒžแƒแƒ™แƒ”แƒขแƒ˜ tidyr แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ pivot_longer แƒ“แƒ pivot_wider

แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒฏแƒ”แƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜:

library(tidyr)
library(dplyr)
library(readr)

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช (แƒกแƒฎแƒ•แƒ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“) แƒ”แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒแƒ“แƒ แƒฎแƒแƒšแƒฎแƒก แƒ›แƒแƒ—แƒ˜ แƒ แƒ”แƒšแƒ˜แƒ’แƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒฌแƒšแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘:

#> # A tibble: 18 x 11
#>    religion `<$10k` `$10-20k` `$20-30k` `$30-40k` `$40-50k` `$50-75k`
#>    <chr>      <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
#>  1 Agnostic      27        34        60        81        76       137
#>  2 Atheist       12        27        37        52        35        70
#>  3 Buddhist      27        21        30        34        33        58
#>  4 Catholic     418       617       732       670       638      1116
#>  5 Donโ€™t kโ€ฆ      15        14        15        11        10        35
#>  6 Evangelโ€ฆ     575       869      1064       982       881      1486
#>  7 Hindu          1         9         7         9        11        34
#>  8 Historiโ€ฆ     228       244       236       238       197       223
#>  9 Jehovahโ€ฆ      20        27        24        24        21        30
#> 10 Jewish        19        19        25        25        30        95
#> # โ€ฆ with 8 more rows, and 4 more variables: `$75-100k` <dbl>,
#> #   `$100-150k` <dbl>, `>150k` <dbl>, `Don't know/refused` <dbl>

แƒ”แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ แƒ”แƒกแƒžแƒแƒœแƒ“แƒ”แƒœแƒขแƒ—แƒ แƒ แƒ”แƒšแƒ˜แƒ’แƒ˜แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ แƒ˜แƒ’แƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒ›แƒแƒคแƒแƒœแƒขแƒฃแƒšแƒ˜แƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ–แƒ”. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ˜แƒ“แƒแƒœ แƒ แƒ”แƒกแƒžแƒแƒœแƒ“แƒ”แƒœแƒขแƒ—แƒ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒฃแƒฏแƒ แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ แƒ”แƒšแƒ˜แƒ’แƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒ“แƒแƒœแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ™แƒ•แƒ”แƒ—แƒแƒ–แƒ”. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒš, แƒกแƒฌแƒแƒ  แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ›แƒแƒ˜แƒงแƒ•แƒแƒœแƒแƒ—, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— pivot_longer():

pew %>% 
  pivot_longer(cols = -religion, names_to = "income", values_to = "count")

pew %>% 
  pivot_longer(cols = -religion, names_to = "income", values_to = "count")
#> # A tibble: 180 x 3
#>    religion income             count
#>    <chr>    <chr>              <dbl>
#>  1 Agnostic <$10k                 27
#>  2 Agnostic $10-20k               34
#>  3 Agnostic $20-30k               60
#>  4 Agnostic $30-40k               81
#>  5 Agnostic $40-50k               76
#>  6 Agnostic $50-75k              137
#>  7 Agnostic $75-100k             122
#>  8 Agnostic $100-150k            109
#>  9 Agnostic >150k                 84
#> 10 Agnostic Don't know/refused    96
#> # โ€ฆ with 170 more rows

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ pivot_longer()

  • แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒกแƒแƒงแƒ”แƒšแƒแƒ”แƒ‘แƒ˜, แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ“แƒ”แƒก. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒงแƒ•แƒ”แƒšแƒ แƒกแƒ•แƒ”แƒขแƒ˜ แƒ’แƒแƒ แƒ“แƒ แƒ“แƒ แƒ.
  • แƒ™แƒแƒ›แƒแƒ—แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜_ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.
  • แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜_แƒ›แƒ“แƒ” แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒฃแƒฏแƒ แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.

แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒ แƒ” แƒ›แƒ˜แƒฃแƒฌแƒ•แƒ“แƒแƒ›แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก.

แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ˜ แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒกแƒ•แƒ”แƒขแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒจแƒ˜ แƒ“แƒ แƒแƒ  แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒกแƒ•แƒ”แƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ:

  • . แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒกแƒแƒฎแƒ”แƒšแƒก.
  • .แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฃแƒฏแƒ แƒ”แƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒก.

แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ แƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒแƒกแƒแƒฎแƒแƒ•แƒก, โ€‹โ€‹แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒแƒฎแƒแƒš แƒกแƒ•แƒ”แƒขแƒจแƒ˜ แƒจแƒ”แƒ™แƒฃแƒ›แƒจแƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก . แƒกแƒแƒฎแƒ”แƒšแƒ˜.

แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒš แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒ—แƒ˜แƒ—แƒ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜แƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“, แƒ”แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ›แƒแƒ‘แƒœแƒ”แƒ•แƒ”แƒšแƒ˜ แƒฉแƒแƒœแƒ“แƒ”แƒก แƒแƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒก แƒ’แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒ‘แƒ”แƒ•แƒ แƒ˜. แƒฃแƒคแƒ แƒ แƒœแƒแƒ—แƒ”แƒšแƒ˜.

แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒแƒ–แƒ แƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ—, แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ“แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒแƒกแƒ—แƒ•แƒ˜แƒก.

แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒ’แƒ แƒซแƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒงแƒ•แƒแƒœแƒ˜แƒกแƒแƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ pivot_longer_spec().

แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒ˜แƒ’แƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒฉแƒแƒ แƒฉแƒแƒก แƒ“แƒ แƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒ˜แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒฌแƒ”แƒกแƒ˜แƒ—.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ•แƒ˜แƒฆแƒแƒ— Who แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒžแƒแƒ™แƒ”แƒขแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒฏแƒแƒœแƒ“แƒแƒชแƒ•แƒ˜แƒก แƒกแƒแƒ”แƒ แƒ—แƒแƒจแƒแƒ แƒ˜แƒกแƒ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒขแƒฃแƒ‘แƒ”แƒ แƒ™แƒฃแƒšแƒแƒ–แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

who
#> # A tibble: 7,240 x 60
#>    country iso2  iso3   year new_sp_m014 new_sp_m1524 new_sp_m2534
#>    <chr>   <chr> <chr> <int>       <int>        <int>        <int>
#>  1 Afghanโ€ฆ AF    AFG    1980          NA           NA           NA
#>  2 Afghanโ€ฆ AF    AFG    1981          NA           NA           NA
#>  3 Afghanโ€ฆ AF    AFG    1982          NA           NA           NA
#>  4 Afghanโ€ฆ AF    AFG    1983          NA           NA           NA
#>  5 Afghanโ€ฆ AF    AFG    1984          NA           NA           NA
#>  6 Afghanโ€ฆ AF    AFG    1985          NA           NA           NA
#>  7 Afghanโ€ฆ AF    AFG    1986          NA           NA           NA
#>  8 Afghanโ€ฆ AF    AFG    1987          NA           NA           NA
#>  9 Afghanโ€ฆ AF    AFG    1988          NA           NA           NA
#> 10 Afghanโ€ฆ AF    AFG    1989          NA           NA           NA
#> # โ€ฆ with 7,230 more rows, and 53 more variables

แƒ›แƒแƒ“แƒ˜แƒ— แƒแƒ•แƒแƒจแƒ”แƒœแƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ.

spec <- who %>%
  pivot_longer_spec(new_sp_m014:newrel_f65, values_to = "count")

#> # A tibble: 56 x 3
#>    .name        .value name        
#>    <chr>        <chr>  <chr>       
#>  1 new_sp_m014  count  new_sp_m014 
#>  2 new_sp_m1524 count  new_sp_m1524
#>  3 new_sp_m2534 count  new_sp_m2534
#>  4 new_sp_m3544 count  new_sp_m3544
#>  5 new_sp_m4554 count  new_sp_m4554
#>  6 new_sp_m5564 count  new_sp_m5564
#>  7 new_sp_m65   count  new_sp_m65  
#>  8 new_sp_f014  count  new_sp_f014 
#>  9 new_sp_f1524 count  new_sp_f1524
#> 10 new_sp_f2534 count  new_sp_f2534
#> # โ€ฆ with 46 more rows

แƒกแƒคแƒ”แƒ แƒแƒจแƒ˜ แƒฅแƒ•แƒ”แƒงแƒแƒœแƒ, iso2, iso3 แƒฃแƒ™แƒ•แƒ” แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ new_sp_m014 on newrel_f65.

แƒแƒ› แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก:

  • แƒžแƒ แƒ”แƒคแƒ˜แƒฅแƒกแƒ˜ new_ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒกแƒ•แƒ”แƒขแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒขแƒฃแƒ‘แƒ”แƒ แƒ™แƒฃแƒšแƒแƒ–แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒฎแƒแƒš แƒ“แƒแƒแƒ•แƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ–แƒ”, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒแƒ› แƒžแƒ แƒ”แƒคแƒ˜แƒฅแƒกแƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜ แƒแƒ แƒแƒ•แƒ˜แƒ—แƒแƒ แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ  แƒแƒฅแƒ•แƒก.
  • sp/rel/sp/ep แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ“แƒแƒแƒ•แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒœแƒแƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒก.
  • m/f แƒžแƒแƒชแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒฅแƒ”แƒกแƒ˜.
  • 014/1524/2535/3544/4554/65 แƒžแƒแƒชแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒแƒกแƒแƒ™แƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ“แƒ˜แƒแƒžแƒแƒ–แƒแƒœแƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒงแƒแƒ— แƒ”แƒก แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— extract()แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

spec <- spec %>%
        extract(name, c("diagnosis", "gender", "age"), "new_?(.*)_(.)(.*)")

#> # A tibble: 56 x 5
#>    .name        .value diagnosis gender age  
#>    <chr>        <chr>  <chr>     <chr>  <chr>
#>  1 new_sp_m014  count  sp        m      014  
#>  2 new_sp_m1524 count  sp        m      1524 
#>  3 new_sp_m2534 count  sp        m      2534 
#>  4 new_sp_m3544 count  sp        m      3544 
#>  5 new_sp_m4554 count  sp        m      4554 
#>  6 new_sp_m5564 count  sp        m      5564 
#>  7 new_sp_m65   count  sp        m      65   
#>  8 new_sp_f014  count  sp        f      014  
#>  9 new_sp_f1524 count  sp        f      1524 
#> 10 new_sp_f2534 count  sp        f      2534 
#> # โ€ฆ with 46 more rows

แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ— แƒกแƒ•แƒ”แƒขแƒ˜ . แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ แƒฉแƒ”แƒก แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒจแƒ˜.

แƒกแƒฅแƒ”แƒกแƒ˜ แƒ“แƒ แƒแƒกแƒแƒ™แƒ˜ (แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒกแƒฅแƒ”แƒกแƒ˜ ะธ แƒแƒกแƒแƒ™แƒ˜) แƒแƒฅแƒ•แƒก แƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒ› แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒฅแƒขแƒแƒ แƒ”แƒ‘แƒแƒ“ แƒ’แƒแƒ“แƒแƒงแƒ•แƒแƒœแƒ:

spec <-  spec %>%
            mutate(
              gender = factor(gender, levels = c("f", "m")),
              age = factor(age, levels = unique(age), ordered = TRUE)
            ) 

แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒจแƒ˜ แƒ•แƒ˜แƒœแƒช แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒกแƒžแƒ”แƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ pivot_longer().

who %>% pivot_longer(spec = spec)

#> # A tibble: 405,440 x 8
#>    country     iso2  iso3   year diagnosis gender age   count
#>    <chr>       <chr> <chr> <int> <chr>     <fct>  <ord> <int>
#>  1 Afghanistan AF    AFG    1980 sp        m      014      NA
#>  2 Afghanistan AF    AFG    1980 sp        m      1524     NA
#>  3 Afghanistan AF    AFG    1980 sp        m      2534     NA
#>  4 Afghanistan AF    AFG    1980 sp        m      3544     NA
#>  5 Afghanistan AF    AFG    1980 sp        m      4554     NA
#>  6 Afghanistan AF    AFG    1980 sp        m      5564     NA
#>  7 Afghanistan AF    AFG    1980 sp        m      65       NA
#>  8 Afghanistan AF    AFG    1980 sp        f      014      NA
#>  9 Afghanistan AF    AFG    1980 sp        f      1524     NA
#> 10 Afghanistan AF    AFG    1980 sp        f      2534     NA
#> # โ€ฆ with 405,430 more rows

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ—, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒฅแƒ”แƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ˜แƒงแƒแƒก แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒœแƒแƒ˜แƒ แƒแƒ“:

R แƒžแƒแƒ™แƒ”แƒขแƒ˜ tidyr แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ pivot_longer แƒ“แƒ pivot_wider

แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (.value)

แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜, แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒ˜ .แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ— แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก, แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒก แƒแƒกแƒ”แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒฅแƒ›แƒœแƒแƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒ”แƒ›แƒ™แƒ•แƒ˜แƒ“แƒ แƒ”แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ spread() แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ•แƒ˜แƒœแƒ˜แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ–แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒ˜แƒ“แƒ.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒ.

family <- tibble::tribble(
  ~family,  ~dob_child1,  ~dob_child2, ~gender_child1, ~gender_child2,
       1L, "1998-11-26", "2000-01-29",             1L,             2L,
       2L, "1996-06-22",           NA,             2L,             NA,
       3L, "2002-07-11", "2004-04-05",             2L,             2L,
       4L, "2004-10-10", "2009-08-27",             1L,             1L,
       5L, "2000-12-05", "2005-02-28",             2L,             1L,
)
family <- family %>% mutate_at(vars(starts_with("dob")), parse_date)

#> # A tibble: 5 x 5
#>   family dob_child1 dob_child2 gender_child1 gender_child2
#>    <int> <date>     <date>             <int>         <int>
#> 1      1 1998-11-26 2000-01-29             1             2
#> 2      2 1996-06-22 NA                     2            NA
#> 3      3 2002-07-11 2004-04-05             2             2
#> 4      4 2004-10-10 2009-08-27             1             1
#> 5      5 2000-12-05 2005-02-28             2             1

แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ”แƒ แƒ—แƒ˜ แƒแƒฏแƒแƒฎแƒ˜แƒก แƒจแƒ•แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒจแƒ˜. แƒแƒฏแƒแƒฎแƒ”แƒ‘แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒงแƒแƒ•แƒ“แƒ”แƒ— แƒ”แƒ แƒ—แƒ˜ แƒแƒœ แƒแƒ แƒ˜ แƒจแƒ•แƒ˜แƒšแƒ˜. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ‘แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒกแƒ แƒ“แƒ แƒกแƒฅแƒ”แƒกแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒฎแƒแƒšแƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒชแƒแƒšแƒ™แƒ” แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒจแƒ˜แƒ, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒกแƒฌแƒแƒ  แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ›แƒ˜แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘: แƒ›แƒแƒ—แƒ˜ แƒกแƒฅแƒ”แƒกแƒ˜ แƒ“แƒ แƒ“แƒแƒ‘แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ˜ (แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒžแƒ แƒ”แƒคแƒ˜แƒฅแƒกแƒ˜แƒ— dop แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ“แƒแƒ‘แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒก, แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒก แƒžแƒ แƒ”แƒคแƒ˜แƒฅแƒกแƒ˜แƒ— แƒกแƒฅแƒ”แƒกแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒกแƒฅแƒ”แƒกแƒก). แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒœแƒ”แƒœ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒกแƒ•แƒ”แƒขแƒ˜ .value แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒ แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ.

spec <- family %>%
  pivot_longer_spec(-family) %>%
  separate(col = name, into = c(".value", "child"))%>%
  mutate(child = parse_number(child))

#> # A tibble: 4 x 3
#>   .name         .value child
#>   <chr>         <chr>  <dbl>
#> 1 dob_child1    dob        1
#> 2 dob_child2    dob        2
#> 3 gender_child1 gender     1
#> 4 gender_child2 gender     2

แƒ›แƒแƒจ แƒแƒกแƒ”, แƒ”แƒขแƒแƒžแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒก.

  • pivot_longer_spec(-family) โ€” แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ™แƒฃแƒ›แƒจแƒแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒกแƒ•แƒ”แƒขแƒก แƒแƒฏแƒแƒฎแƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ.
  • separate(col = name, into = c(".value", "child")) - แƒ’แƒแƒงแƒแƒ•แƒ˜แƒ— แƒกแƒ•แƒ”แƒขแƒ˜ . แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒก, แƒฅแƒ•แƒ”แƒ“แƒ แƒฎแƒแƒ–แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒจแƒ˜ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒ— .แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ ะธ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜.
  • mutate(child = parse_number(child)) โ€” แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒแƒก แƒ•แƒ”แƒšแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ‘แƒแƒ•แƒจแƒ•แƒ˜ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒ“แƒแƒœ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒ—แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒขแƒ˜แƒžแƒแƒ›แƒ“แƒ”.

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒแƒ–แƒ” แƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒ›แƒ“แƒ”.

family %>% 
    pivot_longer(spec = spec, na.rm = T)

#> # A tibble: 9 x 4
#>   family child dob        gender
#>    <int> <dbl> <date>      <int>
#> 1      1     1 1998-11-26      1
#> 2      1     2 2000-01-29      2
#> 3      2     1 1996-06-22      2
#> 4      3     1 2002-07-11      2
#> 5      3     2 2004-04-05      2
#> 6      4     1 2004-10-10      1
#> 7      4     2 2009-08-27      1
#> 8      5     1 2000-12-05      2
#> 9      5     2 2005-02-28      1

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒก na.rm = TRUE, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒคแƒแƒ แƒ›แƒ แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒ แƒแƒ› แƒ›แƒ”-2 แƒแƒฏแƒแƒฎแƒก แƒฐแƒงแƒแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒจแƒ•แƒ˜แƒšแƒ˜, na.rm = TRUE แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒแƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ, แƒ แƒแƒ› แƒ›แƒ”-2 แƒแƒฏแƒแƒฎแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ”แƒ แƒ—แƒ˜ แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒจแƒ˜.

แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒ แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ“แƒแƒœ แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜

pivot_wider() - แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ แƒแƒœแƒกแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ“แƒ แƒžแƒ˜แƒ แƒ˜แƒฅแƒ˜แƒ— แƒ–แƒ แƒ“แƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒก แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

R แƒžแƒแƒ™แƒ”แƒขแƒ˜ tidyr แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ pivot_longer แƒ“แƒ pivot_wider

แƒแƒ› แƒขแƒ˜แƒžแƒ˜แƒก แƒขแƒ แƒแƒœแƒกแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒซแƒแƒšแƒ–แƒ” แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ–แƒฃแƒกแƒข แƒคแƒแƒ แƒ›แƒแƒจแƒ˜ แƒ›แƒแƒกแƒแƒงแƒ•แƒแƒœแƒแƒ“, แƒ—แƒฃแƒ›แƒชแƒ, แƒ”แƒก แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒงแƒแƒก แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒ แƒ”แƒ‘แƒกแƒ˜แƒ—แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒแƒœ แƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ pivot_longer() ะธ pivot_wider() แƒแƒ แƒ˜แƒแƒœ แƒกแƒ˜แƒ›แƒ”แƒขแƒ แƒ˜แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒแƒœ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒก แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ˜แƒก แƒกแƒแƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’แƒแƒ“, แƒ”.แƒ˜. df %>% pivot_longer(spec = spec) %>% pivot_wider(spec = spec) ะธ df %>% pivot_wider(spec = spec) %>% pivot_longer(spec = spec) แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒก df.

แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒแƒ แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

แƒ˜แƒ›แƒ˜แƒก แƒ“แƒ”แƒ›แƒแƒœแƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ pivot_wider() แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒก แƒ—แƒ”แƒ•แƒ–แƒ˜_แƒจแƒ”แƒฎแƒ•แƒ”แƒ“แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒแƒ•แƒ”แƒœ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ”แƒ‘แƒ˜ แƒ—แƒ”แƒ•แƒ–แƒ˜แƒก แƒ›แƒแƒซแƒ แƒแƒแƒ‘แƒแƒก แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ˜แƒก แƒ’แƒแƒกแƒฌแƒ•แƒ แƒ˜แƒ•.

#> # A tibble: 114 x 3
#>    fish  station  seen
#>    <fct> <fct>   <int>
#>  1 4842  Release     1
#>  2 4842  I80_1       1
#>  3 4842  Lisbon      1
#>  4 4842  Rstr        1
#>  5 4842  Base_TD     1
#>  6 4842  BCE         1
#>  7 4842  BCW         1
#>  8 4842  BCE2        1
#>  9 4842  BCW2        1
#> 10 4842  MAE         1
#> # โ€ฆ with 104 more rows

แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ”แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒฃแƒคแƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒชแƒแƒšแƒ™แƒ” แƒกแƒ•แƒ”แƒขแƒจแƒ˜ แƒฌแƒแƒ แƒแƒ“แƒ’แƒ”แƒœแƒ—.

fish_encounters %>% pivot_wider(names_from = station, values_from = seen)

fish_encounters %>% pivot_wider(names_from = station, values_from = seen)
#> # A tibble: 19 x 12
#>    fish  Release I80_1 Lisbon  Rstr Base_TD   BCE   BCW  BCE2  BCW2   MAE
#>    <fct>   <int> <int>  <int> <int>   <int> <int> <int> <int> <int> <int>
#>  1 4842        1     1      1     1       1     1     1     1     1     1
#>  2 4843        1     1      1     1       1     1     1     1     1     1
#>  3 4844        1     1      1     1       1     1     1     1     1     1
#>  4 4845        1     1      1     1       1    NA    NA    NA    NA    NA
#>  5 4847        1     1      1    NA      NA    NA    NA    NA    NA    NA
#>  6 4848        1     1      1     1      NA    NA    NA    NA    NA    NA
#>  7 4849        1     1     NA    NA      NA    NA    NA    NA    NA    NA
#>  8 4850        1     1     NA     1       1     1     1    NA    NA    NA
#>  9 4851        1     1     NA    NA      NA    NA    NA    NA    NA    NA
#> 10 4854        1     1     NA    NA      NA    NA    NA    NA    NA    NA
#> # โ€ฆ with 9 more rows, and 1 more variable: MAW <int>

แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒแƒ“แƒ’แƒฃแƒ แƒ›แƒ แƒ—แƒ”แƒ•แƒ–แƒ˜ แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ, แƒ”.แƒ˜. แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒ—แƒ”แƒ•แƒ–แƒ˜ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒกแƒแƒ“แƒ’แƒฃแƒ แƒก แƒแƒ  แƒ“แƒแƒฃแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ˜ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒจแƒ”แƒ˜แƒ•แƒกแƒ”แƒ‘แƒ NA-แƒ˜แƒ—.

แƒ—แƒฃแƒ›แƒชแƒ, แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ—แƒ”แƒ•แƒ–แƒ˜ แƒแƒ  แƒฉแƒแƒœแƒ“แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜_แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ pivot_wider() แƒ“แƒ แƒจแƒ”แƒแƒ•แƒกแƒ”แƒ— แƒ”แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒœแƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—:

fish_encounters %>% pivot_wider(
  names_from = station, 
  values_from = seen,
  values_fill = list(seen = 0)
)

#> # A tibble: 19 x 12
#>    fish  Release I80_1 Lisbon  Rstr Base_TD   BCE   BCW  BCE2  BCW2   MAE
#>    <fct>   <int> <int>  <int> <int>   <int> <int> <int> <int> <int> <int>
#>  1 4842        1     1      1     1       1     1     1     1     1     1
#>  2 4843        1     1      1     1       1     1     1     1     1     1
#>  3 4844        1     1      1     1       1     1     1     1     1     1
#>  4 4845        1     1      1     1       1     0     0     0     0     0
#>  5 4847        1     1      1     0       0     0     0     0     0     0
#>  6 4848        1     1      1     1       0     0     0     0     0     0
#>  7 4849        1     1      0     0       0     0     0     0     0     0
#>  8 4850        1     1      0     1       1     1     1     0     0     0
#>  9 4851        1     1      0     0       0     0     0     0     0     0
#> 10 4854        1     1      0     0       0     0     0     0     0     0
#> # โ€ฆ with 9 more rows, and 1 more variable: MAW <int>

แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒฌแƒงแƒแƒ แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒ“แƒแƒœ

แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก, แƒฅแƒ•แƒ”แƒงแƒœแƒ˜แƒกแƒ แƒ“แƒ แƒฌแƒšแƒ˜แƒก แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒแƒก. แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ™แƒแƒ“แƒ˜:

df <- expand_grid(
  product = c("A", "B"), 
  country = c("AI", "EI"), 
  year = 2000:2014
) %>%
  filter((product == "A" & country == "AI") | product == "B") %>% 
  mutate(value = rnorm(nrow(.)))

#> # A tibble: 45 x 4
#>    product country  year    value
#>    <chr>   <chr>   <int>    <dbl>
#>  1 A       AI       2000 -2.05   
#>  2 A       AI       2001 -0.676  
#>  3 A       AI       2002  1.60   
#>  4 A       AI       2003 -0.353  
#>  5 A       AI       2004 -0.00530
#>  6 A       AI       2005  0.442  
#>  7 A       AI       2006 -0.610  
#>  8 A       AI       2007 -2.77   
#>  9 A       AI       2008  0.899  
#> 10 A       AI       2009 -0.106  
#> # โ€ฆ with 35 more rows

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ’แƒแƒ•แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ”แƒ แƒ—แƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒกแƒ แƒ“แƒ แƒฅแƒ•แƒ”แƒงแƒœแƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒ™แƒแƒ›แƒแƒ—แƒจแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜_แƒ’แƒแƒœ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒกแƒแƒ”แƒ แƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒก.

df %>% pivot_wider(names_from = c(product, country),
                 values_from = "value")

#> # A tibble: 15 x 4
#>     year     A_AI    B_AI    B_EI
#>    <int>    <dbl>   <dbl>   <dbl>
#>  1  2000 -2.05     0.607   1.20  
#>  2  2001 -0.676    1.65   -0.114 
#>  3  2002  1.60    -0.0245  0.501 
#>  4  2003 -0.353    1.30   -0.459 
#>  5  2004 -0.00530  0.921  -0.0589
#>  6  2005  0.442   -1.55    0.594 
#>  7  2006 -0.610    0.380  -1.28  
#>  8  2007 -2.77     0.830   0.637 
#>  9  2008  0.899    0.0175 -1.30  
#> 10  2009 -0.106   -0.195   1.03  
#> # โ€ฆ with 5 more rows

แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก pivot_wider(). แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒชแƒ แƒฌแƒแƒ แƒ”แƒ“แƒ’แƒ˜แƒœแƒ pivot_wider() แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒแƒก pivot_longer(): แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ . แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— .แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜.

แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ—, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒฅแƒ•แƒ”แƒงแƒแƒœแƒแƒกแƒ แƒ“แƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒแƒก แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜ แƒ“แƒ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒก, แƒ แƒแƒช แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒจแƒ˜:

spec <- df %>% 
  expand(product, country, .value = "value") %>% 
  unite(".name", product, country, remove = FALSE)

#> # A tibble: 4 x 4
#>   .name product country .value
#>   <chr> <chr>   <chr>   <chr> 
#> 1 A_AI  A       AI      value 
#> 2 A_EI  A       EI      value 
#> 3 B_AI  B       AI      value 
#> 4 B_EI  B       EI      value

df %>% pivot_wider(spec = spec) %>% head()

#> # A tibble: 6 x 5
#>    year     A_AI  A_EI    B_AI    B_EI
#>   <int>    <dbl> <dbl>   <dbl>   <dbl>
#> 1  2000 -2.05       NA  0.607   1.20  
#> 2  2001 -0.676      NA  1.65   -0.114 
#> 3  2002  1.60       NA -0.0245  0.501 
#> 4  2003 -0.353      NA  1.30   -0.459 
#> 5  2004 -0.00530    NA  0.921  -0.0589
#> 6  2005  0.442      NA -1.55    0.594

แƒแƒฎแƒแƒšแƒ˜ tidyr แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒฌแƒ˜แƒœแƒแƒ•แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ แƒแƒจแƒจ-แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒกแƒ แƒ“แƒ แƒฅแƒ˜แƒ แƒแƒ•แƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ us_rent_income แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒจแƒ”แƒ›แƒแƒกแƒแƒ•แƒแƒšแƒก แƒ“แƒ แƒ˜แƒฏแƒแƒ แƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒแƒจแƒจ-แƒก แƒงแƒ•แƒ”แƒšแƒ แƒจแƒขแƒแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 2017 แƒฌแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜ Tidycensus).

us_rent_income
#> # A tibble: 104 x 5
#>    GEOID NAME       variable estimate   moe
#>    <chr> <chr>      <chr>       <dbl> <dbl>
#>  1 01    Alabama    income      24476   136
#>  2 01    Alabama    rent          747     3
#>  3 02    Alaska     income      32940   508
#>  4 02    Alaska     rent         1200    13
#>  5 04    Arizona    income      27517   148
#>  6 04    Arizona    rent          972     4
#>  7 05    Arkansas   income      23789   165
#>  8 05    Arkansas   rent          709     5
#>  9 06    California income      29454   109
#> 10 06    California rent         1358     3
#> # โ€ฆ with 94 more rows

แƒ˜แƒ› แƒคแƒแƒ แƒ›แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒจแƒ˜ us_rent_income แƒ›แƒแƒ—แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒ›แƒแƒฃแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒ•แƒกแƒฃแƒ แƒก แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒ—: แƒ“แƒแƒฅแƒ˜แƒ แƒแƒ•แƒ”แƒ‘แƒ, rent_moe, แƒ แƒแƒ’แƒแƒ , แƒจแƒ”แƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜_แƒ›แƒแƒ”. แƒแƒ› แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ/แƒ›แƒแƒ”แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜.

  spec <- us_rent_income %>% 
    expand(variable, .value = c("estimate", "moe")) %>% 
    mutate(
      .name = paste0(variable, ifelse(.value == "moe", "_moe", ""))
    )

#> # A tibble: 4 x 3
#>   variable .value   .name     
#>   <chr>    <chr>    <chr>     
#> 1 income   estimate income    
#> 2 income   moe      income_moe
#> 3 rent     estimate rent      
#> 4 rent     moe      rent_moe

แƒแƒ› แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ pivot_wider() แƒ’แƒ•แƒแƒซแƒšแƒ”แƒ•แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก, แƒ แƒแƒกแƒแƒช แƒ•แƒ”แƒซแƒ”แƒ‘แƒ—:

us_rent_income %>% pivot_wider(spec = spec)

#> # A tibble: 52 x 6
#>    GEOID NAME                 income income_moe  rent rent_moe
#>    <chr> <chr>                 <dbl>      <dbl> <dbl>    <dbl>
#>  1 01    Alabama               24476        136   747        3
#>  2 02    Alaska                32940        508  1200       13
#>  3 04    Arizona               27517        148   972        4
#>  4 05    Arkansas              23789        165   709        5
#>  5 06    California            29454        109  1358        3
#>  6 08    Colorado              32401        109  1125        5
#>  7 09    Connecticut           35326        195  1123        5
#>  8 10    Delaware              31560        247  1076       10
#>  9 11    District of Columbia  43198        681  1424       17
#> 10 12    Florida               25952         70  1077        3
#> # โ€ฆ with 42 more rows

แƒ›แƒกแƒแƒคแƒšแƒ˜แƒ แƒ‘แƒแƒœแƒ™แƒ˜

แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒคแƒแƒ แƒ›แƒแƒจแƒ˜ แƒ›แƒแƒงแƒ•แƒแƒœแƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒแƒ‘แƒ˜แƒฏแƒก แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก.
แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ world_bank_pop แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒกแƒแƒคแƒšแƒ˜แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒฅแƒ•แƒ”แƒงแƒœแƒ˜แƒก แƒ›แƒแƒกแƒแƒฎแƒšแƒ”แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ 2000-แƒ“แƒแƒœ 2018 แƒฌแƒšแƒแƒ›แƒ“แƒ”.

#> # A tibble: 1,056 x 20
#>    country indicator `2000` `2001` `2002` `2003`  `2004`  `2005`   `2006`
#>    <chr>   <chr>      <dbl>  <dbl>  <dbl>  <dbl>   <dbl>   <dbl>    <dbl>
#>  1 ABW     SP.URB.Tโ€ฆ 4.24e4 4.30e4 4.37e4 4.42e4 4.47e+4 4.49e+4  4.49e+4
#>  2 ABW     SP.URB.Gโ€ฆ 1.18e0 1.41e0 1.43e0 1.31e0 9.51e-1 4.91e-1 -1.78e-2
#>  3 ABW     SP.POP.Tโ€ฆ 9.09e4 9.29e4 9.50e4 9.70e4 9.87e+4 1.00e+5  1.01e+5
#>  4 ABW     SP.POP.Gโ€ฆ 2.06e0 2.23e0 2.23e0 2.11e0 1.76e+0 1.30e+0  7.98e-1
#>  5 AFG     SP.URB.Tโ€ฆ 4.44e6 4.65e6 4.89e6 5.16e6 5.43e+6 5.69e+6  5.93e+6
#>  6 AFG     SP.URB.Gโ€ฆ 3.91e0 4.66e0 5.13e0 5.23e0 5.12e+0 4.77e+0  4.12e+0
#>  7 AFG     SP.POP.Tโ€ฆ 2.01e7 2.10e7 2.20e7 2.31e7 2.41e+7 2.51e+7  2.59e+7
#>  8 AFG     SP.POP.Gโ€ฆ 3.49e0 4.25e0 4.72e0 4.82e0 4.47e+0 3.87e+0  3.23e+0
#>  9 AGO     SP.URB.Tโ€ฆ 8.23e6 8.71e6 9.22e6 9.77e6 1.03e+7 1.09e+7  1.15e+7
#> 10 AGO     SP.URB.Gโ€ฆ 5.44e0 5.59e0 5.70e0 5.76e0 5.75e+0 5.69e+0  4.92e+0
#> # โ€ฆ with 1,046 more rows, and 11 more variables: `2007` <dbl>,
#> #   `2008` <dbl>, `2009` <dbl>, `2010` <dbl>, `2011` <dbl>, `2012` <dbl>,
#> #   `2013` <dbl>, `2014` <dbl>, `2015` <dbl>, `2016` <dbl>, `2017` <dbl>

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ–แƒฃแƒกแƒขแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒกแƒ•แƒ”แƒขแƒจแƒ˜. แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒ˜แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ แƒ แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜แƒ แƒกแƒแƒญแƒ˜แƒ แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒจแƒ™แƒแƒ แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒ—: แƒฌแƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒ•แƒ”แƒขแƒจแƒ˜.

แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ pivot_longer().

pop2 <- world_bank_pop %>% 
  pivot_longer(`2000`:`2017`, names_to = "year")

#> # A tibble: 19,008 x 4
#>    country indicator   year  value
#>    <chr>   <chr>       <chr> <dbl>
#>  1 ABW     SP.URB.TOTL 2000  42444
#>  2 ABW     SP.URB.TOTL 2001  43048
#>  3 ABW     SP.URB.TOTL 2002  43670
#>  4 ABW     SP.URB.TOTL 2003  44246
#>  5 ABW     SP.URB.TOTL 2004  44669
#>  6 ABW     SP.URB.TOTL 2005  44889
#>  7 ABW     SP.URB.TOTL 2006  44881
#>  8 ABW     SP.URB.TOTL 2007  44686
#>  9 ABW     SP.URB.TOTL 2008  44375
#> 10 ABW     SP.URB.TOTL 2009  44052
#> # โ€ฆ with 18,998 more rows

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒ“แƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ.
pop2 %>% count(indicator)

#> # A tibble: 4 x 2
#>   indicator       n
#>   <chr>       <int>
#> 1 SP.POP.GROW  4752
#> 2 SP.POP.TOTL  4752
#> 3 SP.URB.GROW  4752
#> 4 SP.URB.TOTL  4752

แƒกแƒแƒ“แƒแƒช SP.POP.GROW แƒแƒ แƒ˜แƒก แƒ›แƒแƒกแƒแƒฎแƒšแƒ”แƒแƒ‘แƒ˜แƒก แƒ–แƒ แƒ“แƒ, SP.POP.TOTL แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒ›แƒแƒกแƒแƒฎแƒšแƒ”แƒแƒ‘แƒ แƒ“แƒ SP.URB. * แƒ˜แƒ’แƒ˜แƒ•แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฅแƒแƒšแƒแƒฅแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒงแƒแƒ— แƒ”แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ  แƒชแƒ•แƒšแƒแƒ“แƒแƒ“: แƒคแƒแƒ แƒ—แƒแƒ‘แƒ˜ - แƒคแƒแƒ แƒ—แƒแƒ‘แƒ˜ (แƒกแƒฃแƒš แƒแƒœ แƒฃแƒ แƒ‘แƒแƒœแƒฃแƒšแƒ˜) แƒ“แƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก (แƒ›แƒแƒกแƒแƒฎแƒšแƒ”แƒแƒ‘แƒ แƒแƒœ แƒ–แƒ แƒ“แƒ):

pop3 <- pop2 %>% 
  separate(indicator, c(NA, "area", "variable"))

#> # A tibble: 19,008 x 5
#>    country area  variable year  value
#>    <chr>   <chr> <chr>    <chr> <dbl>
#>  1 ABW     URB   TOTL     2000  42444
#>  2 ABW     URB   TOTL     2001  43048
#>  3 ABW     URB   TOTL     2002  43670
#>  4 ABW     URB   TOTL     2003  44246
#>  5 ABW     URB   TOTL     2004  44669
#>  6 ABW     URB   TOTL     2005  44889
#>  7 ABW     URB   TOTL     2006  44881
#>  8 ABW     URB   TOTL     2007  44686
#>  9 ABW     URB   TOTL     2008  44375
#> 10 ABW     URB   TOTL     2009  44052
#> # โ€ฆ with 18,998 more rows

แƒแƒฎแƒšแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒแƒ  แƒกแƒ•แƒ”แƒขแƒแƒ“ แƒ’แƒแƒงแƒแƒคแƒ:

pop3 %>% 
  pivot_wider(names_from = variable, values_from = value)

#> # A tibble: 9,504 x 5
#>    country area  year   TOTL    GROW
#>    <chr>   <chr> <chr> <dbl>   <dbl>
#>  1 ABW     URB   2000  42444  1.18  
#>  2 ABW     URB   2001  43048  1.41  
#>  3 ABW     URB   2002  43670  1.43  
#>  4 ABW     URB   2003  44246  1.31  
#>  5 ABW     URB   2004  44669  0.951 
#>  6 ABW     URB   2005  44889  0.491 
#>  7 ABW     URB   2006  44881 -0.0178
#>  8 ABW     URB   2007  44686 -0.435 
#>  9 ABW     URB   2008  44375 -0.698 
#> 10 ABW     URB   2009  44052 -0.731 
#> # โ€ฆ with 9,494 more rows

แƒ™แƒแƒœแƒขแƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ

แƒ‘แƒแƒšแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ’แƒแƒฅแƒ•แƒ— แƒ™แƒแƒœแƒขแƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ— แƒ“แƒ แƒฉแƒแƒกแƒ•แƒ˜แƒ— แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒ“แƒแƒœ:

contacts <- tribble(
  ~field, ~value,
  "name", "Jiena McLellan",
  "company", "Toyota", 
  "name", "John Smith", 
  "company", "google", 
  "email", "[email protected]",
  "name", "Huxley Ratcliffe"
)

แƒแƒ› แƒกแƒ˜แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก, แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก แƒ™แƒแƒœแƒขแƒแƒฅแƒขแƒก. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒก แƒแƒฆแƒœแƒ˜แƒจแƒ•แƒœแƒ˜แƒ—, แƒ แƒแƒ› แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒแƒฅแƒขแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ "แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—", แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜ แƒ“แƒ แƒ’แƒแƒ•แƒ–แƒแƒ แƒ“แƒแƒ— แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜แƒ— แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒชแƒ แƒ•แƒ”แƒšแƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก "แƒกแƒแƒฎแƒ”แƒšแƒ˜":

contacts <- contacts %>% 
  mutate(
    person_id = cumsum(field == "name")
  )
contacts

#> # A tibble: 6 x 3
#>   field   value            person_id
#>   <chr>   <chr>                <int>
#> 1 name    Jiena McLellan           1
#> 2 company Toyota                   1
#> 3 name    John Smith               2
#> 4 company google                   2
#> 5 email   [email protected]          2
#> 6 name    Huxley Ratcliffe         3

แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ ID แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒแƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒแƒ“ แƒ•แƒแƒฅแƒชแƒ˜แƒแƒ—:

contacts %>% 
  pivot_wider(names_from = field, values_from = value)

#> # A tibble: 3 x 4
#>   person_id name             company email          
#>       <int> <chr>            <chr>   <chr>          
#> 1         1 Jiena McLellan   Toyota  <NA>           
#> 2         2 John Smith       google  [email protected]
#> 3         3 Huxley Ratcliffe <NA>    <NA>

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒฉแƒ”แƒ›แƒ˜ แƒžแƒ˜แƒ แƒแƒ“แƒ˜ แƒแƒ–แƒ แƒ˜แƒ, แƒ แƒแƒ› แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ แƒ—แƒšแƒแƒช แƒฃแƒคแƒ แƒ แƒ˜แƒœแƒขแƒฃแƒ˜แƒชแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒ— แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒแƒฆแƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ›แƒ”แƒ›แƒ™แƒ•แƒ˜แƒ“แƒ แƒ”แƒแƒ‘แƒ˜แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก spread() ะธ gather(). แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘, แƒ แƒแƒ› แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒ— pivot_longer() ะธ pivot_wider().

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ