Tidyr: κ°œλ³„ λͺ©λ‘ μ—΄κ³Ό 데이터 ν”„λ ˆμž„ λͺ©λ‘μ— μ€‘μ²©ν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

에 λ§Œλ“  2016λ…„ 05μ›” 06일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: tidyverse/tidyr

μ§€μ‹œμ— 따라(https://github.com/hadley/dplyr/issues/1800) 이 μ§ˆλ¬Έμ„ 여기에 κ²Œμ‹œν•©λ‹ˆλ‹€.

데이터 ν”„λ ˆμž„μ„ 쀑첩할 λ•Œ 이 λ³€ν˜•μ„ μˆ˜ν–‰ν•˜λŠ” κ°€μž₯ 쒋은 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ? λ‹€λ₯Έ λ³€μˆ˜κ°€ 데이터 ν”„λ ˆμž„μ— λ¬»νžˆλŠ” 것을 μ›ν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— tidyr::nest() λ₯Ό μ‚¬μš©ν•˜κ³  싢지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. κ°œλ³„ λͺ©λ‘ μ—΄λ‘œ μ‚¬μš©ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. 이런 μ‹μœΌλ‘œ:

library(dplyr)
mtcars %>%
  group_by(cyl) %>%
  summarize(gear = split(gear, cyl),
            wt = split(wt, cyl))
#> Source: local data frame [3 x 3]
#> 
#>     cyl       gear         wt
#>   <dbl>     <list>     <list>
#> 1     4 <dbl [11]> <dbl [11]>
#> 2     6  <dbl [7]>  <dbl [7]>
#> 3     8 <dbl [14]> <dbl [14]>

κ·Έ μ΄ν›„λ‘œ purrr::transpose() μ‚¬μš©ν•˜μ—¬ λ‹€λ₯Έ 방법을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

library(purrr)
library(dplyr)
library(tidyr)

mtcars %>% 
  group_by(cyl) %>% 
  nest(gear, wt) %>% 
  bind_cols(transpose(.$data)) %>% 
  select(-data)
#> Source: local data frame [3 x 3]
#> 
#>     cyl       gear         wt
#>   <dbl>     <list>     <list>
#> 1     6  <dbl [7]>  <dbl [7]>
#> 2     4 <dbl [11]> <dbl [11]>
#> 3     8 <dbl [14]> <dbl [14]>

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κ°€μž₯ κ°„λ‹¨ν•œ 방법은 μ•„λ§ˆλ„ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

library(dplyr)

mtcars %>%
  group_by(cyl) %>%
  summarize(gear = list(gear), wt = list(wt))

이것이 μƒˆλ‘œμš΄ μ΅œμƒμœ„ 동사에 μ ν•©ν•œμ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

더 넓은 λ§₯λ½μ—μ„œ μ’€ 더 λ§Žμ€ 정보λ₯Ό μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

λͺ¨λ“  3 λŒ“κΈ€

κ°€μž₯ κ°„λ‹¨ν•œ 방법은 μ•„λ§ˆλ„ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

library(dplyr)

mtcars %>%
  group_by(cyl) %>%
  summarize(gear = list(gear), wt = list(wt))

이것이 μƒˆλ‘œμš΄ μ΅œμƒμœ„ 동사에 μ ν•©ν•œμ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

더 넓은 λ§₯λ½μ—μ„œ μ’€ 더 λ§Žμ€ 정보λ₯Ό μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

κ²°κ³Όλ₯Ό λ§Œλ“œλŠ” 방법이 훨씬 더 κΉ”λ”ν•©λ‹ˆλ‹€.

즉각적인 νŠΈλ¦¬κ±°λŠ” νŠΉμ • 데이터 ν”„λ ˆμž„μ„ unnest() ν•  수 μ—†λŠ” 이유λ₯Ό νŒŒμ•…ν•˜κΈ° μœ„ν•΄ 예제λ₯Ό λ§Œλ“œλŠ” κ²ƒμ΄μ—ˆμœΌλ©° dplyr::combine() (https://github.com/hadley/dplyr/ 문제/1780).

λ‹«κ² μŠ΅λ‹ˆλ‹€. 이것이 μ‹€μƒν™œμ—μ„œ μ€‘μš”ν•˜λ‹€λ©΄ λ‹€μ‹œ λ‚˜νƒ€λ‚  κ²ƒμž…λ‹ˆλ‹€.

λ§ˆμ§€λ§‰ μ†”λ£¨μ…˜μ„ λ³΄λ‹ˆ summarise_each() κ°€ 또 λ‹€λ₯Έ μ˜΅μ…˜μ΄λΌλŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.

library(dplyr)
mtcars %>%
  group_by(cyl) %>%
  summarise_each("list", gear, wt)
#> Source: local data frame [3 x 3]
#> 
#>     cyl       gear         wt
#>   <dbl>     <list>     <list>
#> 1     4 <dbl [11]> <dbl [11]>
#> 2     6  <dbl [7]>  <dbl [7]>
#> 3     8 <dbl [14]> <dbl [14]>
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰