ÃֽŠ¹öÀüÀÇ Å¸À̵ð¹ö½º ÆÐÅ°Áö¸¦ Àû¿ëÇÑ °³Á¤ÆÇ!
ŸÀ̵ð¹ö½º Á¢±Ù¹ýÀº 2010³â´ëºÎÅÍ R ÀÌ¿ëÀÚµé »çÀÌ¿¡¼ Á¡Â÷ °¢±¤¹ÞÀ¸¸ç ÀÌÁ¦ ¿ÏÀüÈ÷ ÁÖ·ù·Î ÀÚ¸®¸Å±èÇÏ¿´´Ù. ¡¶R ±â¹Ý µ¥ÀÌÅÍ °úÇÐ tidyverse Á¢±Ù¡·ÀÇ ÃÊÆÇ ¹ßÇà ´ç½Ã ¹öÀü 1.2.1ÀÌ´ø ŸÀ̵ð¹ö½º ÆÐÅ°Áöµµ 2023³â 8¿ù ±âÁØ ¹öÀü 2.0.0À¸·Î ¿©·¯ Â÷·Ê ¾÷µ¥ÀÌÆ®µÇ¾ú´Ù. »õ·Ó°Ô Ãâ°£µÈ ¡¶R ±â¹Ý µ¥ÀÌÅÍ °úÇÐ tidyverse Á¢±Ù °³Á¤ÆÇ¡·Àº ÃֽŠŸÀ̵ð¹ö½º ÆÐÅ°ÁöÀÇ ÄÚµå ÀÛ¼º ¹æ½ÄÀ» ¹Ý¿µÇÏ°í, R ÃʽÉÀڵ鵵 ½±°Ô È°¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÑÃþ ´õ »ç¿ëÀÚ Ä£ÈÀûÀ¸·Î ÀçÆíÇÏ¿´´Ù. °³Á¤ÆÇÀÇ ÁÖ¿ä º¯°æ»çÇ×Àº ´ÙÀ½°ú °°´Ù.
• ù°, ¡®±ä ÇüÅ µ¥ÀÌÅÍ(long format data)¡¯¿Í ¡®³ÐÀº ÇüÅ µ¥ÀÌÅÍ(wide format data)¡¯ º¯È¯À» À§ÇØ ¼Ò°³Çß´ø gather() ÇÔ¼ö¿Í spread() ÇÔ¼ö ´ë½Å, pivot_longer() ÇÔ¼ö¿Í pivot_wider() ÇÔ¼ö¸¦ ¼Ò°³ÇÑ´Ù. µ¥ÀÌÅÍ ÇüÅ º¯È¯ÀÇ ¿ø¸®¿Í º¯È¯ ¹æ½ÄÀº º¯ÇÔ¾øÁö¸¸, ÀÌ¿ëÀÚ ÀÔÀå¿¡¼ pivot_longer() ÇÔ¼ö¿Í pivot_wider() ÇÔ¼ö¸¦ ÈξÀ ´õ ÀÌÇØÇϱ⠽±°Ô ±¸¼ºÇÏ¿´´Ù.
• µÑ°, ÀÌ¿ëÀÚ°¡ ÁöÁ¤ÇÑ Á¶°Ç¿¡ ¸Â´Â ¿©·¯ º¯¼öµéÀ» ÀÏ°ý ó¸®ÇÏ´Â ¹æ¹ýÀÌ Å©°Ô ´Þ¶óÁ³´Ù. 1ÆÇ¿¡¼ »ç¿ëÇß´ø mutate() ÇÔ¼ö¿Í summarize() ÇÔ¼ö´Â ¿©ÀüÈ÷ »ç¿ë °¡´ÉÇÏÁö¸¸ Ãâ·Â°á°ú¿¡¼ °æ°í¹®±¸°¡ ³ªÅ¸³ª´Â ¹®Á¦°¡ ÀÖ¾ú´Ù. °³Á¤ÆÇ¿¡¼´Â 1ÆÇ Ãâ°£ ÈÄ °³¹ßµÈ across() ÇÔ¼ö¸¦ È°¿ëÇÏ´Â ¹æ¹ýµéÀ» ¼Ò°³ÇÑ´Ù.
• ¼Â°, ¹üÁÖÇü º¯¼ö·Î Áý´Ü±¸ºÐµÈ ÇÏÀ§µ¥ÀÌÅÍ(subset)¸¦ ´ë»óÀ¸·Î ÁöÁ¤µÈ ¸ðÇüÀ» ÃßÁ¤ÇÒ ¶§ purrr ÆÐÅ°ÁöÀÇ map() ÇÔ¼ö ´ë½Å dplyr ÆÐÅ°ÁöÀÇ group_modify() ÇÔ¼ö¸¦ ±³Ã¼ÇÏ¿© ¼Ò°³ÇÑ´Ù. 1ÆÇÀÇ split() ÇÔ¼ö¸¦ È°¿ëÇÏ¿© µ¥ÀÌÅ͸¦ Áý´Üº°·Î ±¸ºÐÇÑ ÈÄ map() ÇÔ¼ö¿Í map_dfr() ÇÔ¼ö¸¦ ¿¬ÀÌ¾î »ç¿ëÇÏ´Â ¹æ½ÄÀº RÀ» óÀ½ Á¢ÇÏ´Â µ¶ÀÚ¿¡°Ô´Â ´Ù¼Ò º¹ÀâÇÒ ¼ö ÀÖ´Ù. dplyr ÆÐÅ°ÁöÀÇ group_modify() ÇÔ¼ö´Â R ÃʽÉÀڵ鵵 ºñ±³Àû ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ¸¸ç, ¹«¾ùº¸´Ù 1ÆÇ¿¡¼ ¼Ò°³ÇÑ broom ÆÐÅ°ÁöÀÇ tidy() ÇÔ¼ö¿Í °°ÀÌ È°¿ëÇÒ °æ¿ì Áý´Ü±¸ºÐµÈ ÇÏÀ§µ¥ÀÌÅ͵éÀ» ´ë»óÀ¸·Î ÀÏ°ýÀûÀ¸·Î ¸ðÇüÀ» ó¸®ÇÏ´Â µ¥ ¸Å¿ì È¿°úÀûÀÌ´Ù.
µ¥ÀÌÅÍ °ü¸®¡¤ºÐ¼®ÀÇ »õ·Î¿î ¼¼°è¸¦ º¸¿©Áִ ŸÀ̵ð¹ö½º ¾È³»¼!
ŸÀ̵ð¹ö½º(tidyverse)¶õ, ¡®Å¸À̵ðµ¥ÀÌÅÍ(tidy data) ÇüŸ¦ µ¥ÀÌÅÍ ºÐ¼® ¹× ½Ã°¢ÈÀÇ Ç¥ÁØÀ¸·Î ÇÏ´Â, µ¥ÀÌÅÍ Á¢±Ù¹ýµé·Î ±¸¼ºµÈ ¼¼°è¡¯¶ó°í º¼ ¼ö ÀÖ´Ù. ŸÀ̵ðµ¥ÀÌÅÍ´Â 3°¡Áö ±ÔÄ¢À» Áö´Ñ´Ù. ¡®¨ç ÇϳªÀÇ º¯¼ö´Â ÇϳªÀÇ ¼¼·ÎÁÙÀ» Çü¼ºÇÑ´Ù. ¨è ÇϳªÀÇ »ç·Ê´Â ÇϳªÀÇ °¡·ÎÁÙÀ» Çü¼ºÇÑ´Ù. ¨é ÇϳªÀÇ º¯¼öÀÇ Á¾·ùº°·Î ÇϳªÀÇ Ç¥¸¦ Çü¼ºÇÑ´Ù¡¯°¡ ±×°ÍÀÌ´Ù. »ç½Ç ÀÌ 3°¡Áö ±ÔÄ¢Àº ±×¸® ³î¶ó¿î °ÍÀº ¾Æ´Ï´Ù. ÀϹÝÀûÀ¸·Î ¿ì¸®°¡ Á¢ÇÏ´Â µ¥ÀÌÅÍ´Â ´ë°³ ÀÌ ±ÔÄ¢µéÀ» µû¸£±â ¶§¹®ÀÌ´Ù. ±×·¯³ª ¹®Á¦´Â µ¥ÀÌÅÍ °úÇп¡¼ ´Ù·ç´Â ÀûÁö ¾ÊÀº µ¥ÀÌÅ͵éÀÌ ÀÌ ±ÔÄ¢À» Àü¸éÀûÀ¸·Î ȤÀº ºÎºÐÀûÀ¸·Î µû¸£Áö ¾ÊÀº ä ¡®Á¤¸®µÇÁö ¾ÊÀº µ¥ÀÌÅÍ(uncleaned data)¡¯ ȤÀº ¡®ÁöÀúºÐÇÑ µ¥ÀÌÅÍ(messy data)¡¯·Î ³²¾Æ ÀÖÀ¸¸ç, ±×·Î ÀÎÇØ ½ÇÁúÀûÀÎ µ¥ÀÌÅÍ ºÐ¼®ÀÌ ÀÌ·ç¾îÁöÁö ¸øÇÑ´Ù´Â Á¡ÀÌ´Ù.
ÀÌ Ã¥Àº ¿¬±¸ÀÚµé·Î ÇÏ¿©±Ý Á¤¸®µÇÁö ¾ÊÀº ¹æ´ëÇÑ ¾çÀÇ µ¥ÀÌÅ͸¦ À§ÀÇ 3°¡Áö ±ÔÄ¢¿¡ µû¶ó ±â¼úÅë°èºÐ¼®, ¸ðÇüÃßÁ¤, ºÐ¼®°á°úÀÇ ½Ã°¢È¸¦ ÇÒ ¼ö ÀÖ´Â ÇüÅ·ΠÁ¤¸®ÇÏ¿© ŸÀ̵ðµ¥ÀÌÅÍ ÇüÅ·ΠÁ¤¸®ÇÏ´Â ¹æ¹ýÀ» ¾È³»ÇØÁØ´Ù. ¾Æ¿ï·¯ ŸÀ̵ð¹ö½º ¶óÀ̺귯¸®ÀÇ ¿©·¯ ÇÔ¼öµé°ú ±× È°¿ë¹æ¹ýÀ» ¼Ò°³ÇÔÀ¸·Î½á µ¶ÀÚµéÀÌ È¿À²Àû¡¤È¿°úÀûÀ¸·Î µ¥ÀÌÅ͸¦ °ü¸®¡¤ºÐ¼®ÇÏ°í ½ÇÁúÀûÀÎ ºÐ¼®°á°ú¸¦ µµÃâÇÒ ¼ö ÀÖµµ·Ï À̲ø¾îÁØ´Ù !
R ±â¹Ý µ¥ÀÌÅÍ °úÇÐÀÇ Áøº¸, ŸÀ̵ð¹ö½º Á¢±Ù¹ý!
¿À´Ã³¯ R ÀÌ¿ëȯ°æÀº ±Þ¼ÓÇÏ°Ô º¯ÈÇÏ°í ÀÖ´Ù. ±×·¯³ª ȯ°æÀÌ º¯Çß´Ù°í Çؼ RÀ» ÀÌ¿ëÇÏ´Â °ÍÀÌ ´õ ¾î·Á¿öÁø °ÍÀº ¾Æ´Ï´Ù. R ȯ°æÀº ´õ ¸¹Àº ¾çÀÇ µ¥ÀÌÅÍ, ´õ ´Ù¾çÇÑ ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ º¸´Ù ½±°Ô ´Ù·ç°í ºÐ¼®ÇÒ ¼ö ÀÖµµ·Ï º¯ÇØ°¡°í ÀÖÀ¸¸ç, ÀÌ ¹ßÀüÀû º¯È¸¦ ÁÖµµÇÏ°í ÀÖ´Â ÆÐÅ°Áö°¡ ¹Ù·Î ¡®Å¸À̵ð¹ö½º(tidyverse)¡¯ÀÌ´Ù.
¡®Å¸À̵ð¹ö½º Á¢±Ù¹ý¡¯À» ¾²±â À§ÇØ ±âÁ¸ÀÇ R ÇÁ·Î±×·¡¹Ö ½À°üÀ» ¹ö¸± ÇÊ¿ä´Â ¾ø´Ù. »óȲ¿¡ µû¶ó¼´Â ŸÀ̵ð¹ö½º Á¢±Ù¹ýÀ» µû¸£´Â °Íº¸´Ù R º£À̽º¿¡ ±â¹ÝÇØ µ¥ÀÌÅ͸¦ ºÐ¼®ÇÏ´Â °ÍÀÌ ´õ È¿À²ÀûÀ̱⵵ ÇÏ´Ù. ±×·¯³ª µ¥ÀÌÅÍ°¡ Å©°í º¹ÀâÇϸç, Á¤¸®µÇÁö ¾ÊÀº ÁöÀúºÐÇÑ ÇüÅ·ΠÁ¸ÀçÇÒ ¶§ ŸÀ̵ð¹ö½º Á¢±Ù¹ýÀº ¸Å¿ì À§·ÂÀûÀÌ´Ù! |