RÀº ¾ÆÁ÷ »ó´ëÀûÀ¸·Î ÀþÀº ¾ð¾îÀ̹ǷΠÀÌÇØ¸¦ µ½±â À§ÇÑ ÀÚ·áµéÀÌ Áö¼ÓÀûÀ¸·Î ´õÇØÁö°í ÀÖ´Ù. RÀ» ÀÌÇØÇϱâ À§ÇØ ³ë·ÂÇÑ °³ÀÎÀûÀÎ °æÇè¿¡ ºñÃ纼 ¶§ ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í °ü·ÃµÈ ÀڷḦ ÀÌ¿ëÇÏ´Â °ÍÀÌ Æ¯È÷ µµ¿òÀÌ µÇ¾ú´Ù. RÀº ÇÔ¼öÇü(functional)°ú °´Ã¼ÁöÇâÇü(OO; Object Oriented) ÇÁ·Î±×·¡¹Ö ¾ð¾î ¸ðµÎÀÇ ´Ù¾çÇÑ Ãø¸éÀ» Áö´Ñ´Ù. ÀÌ·¯ÇÑ °³³äµéÀÌ R¿¡¼ Ç¥ÇöµÇ´Â ¹æ¹ýÀ» ÇнÀÇÏ´Â °ÍÀº ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ´ëÇÑ ÀÚ½ÅÀÇ ±âÁ¸ Áö½ÄÀ» Áõ´ëÇÏ´Â µ¥ µµ¿òÀ» ÁÖ°í, ½º½º·Î °³¼±ÇÒ ¼ö ÀÖ´Â ¿µ¿ªÀ» ½Äº°ÇÏ´Â µ¥µµ µµ¿òÀ» ÁÙ ¼ö ...
´õº¸±â
RÀº ¾ÆÁ÷ »ó´ëÀûÀ¸·Î ÀþÀº ¾ð¾îÀ̹ǷΠÀÌÇØ¸¦ µ½±â À§ÇÑ ÀÚ·áµéÀÌ Áö¼ÓÀûÀ¸·Î ´õÇØÁö°í ÀÖ´Ù. RÀ» ÀÌÇØÇϱâ À§ÇØ ³ë·ÂÇÑ °³ÀÎÀûÀÎ °æÇè¿¡ ºñÃ纼 ¶§ ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í °ü·ÃµÈ ÀڷḦ ÀÌ¿ëÇÏ´Â °ÍÀÌ Æ¯È÷ µµ¿òÀÌ µÇ¾ú´Ù. RÀº ÇÔ¼öÇü(functional)°ú °´Ã¼ÁöÇâÇü(OO; Object Oriented) ÇÁ·Î±×·¡¹Ö ¾ð¾î ¸ðµÎÀÇ ´Ù¾çÇÑ Ãø¸éÀ» Áö´Ñ´Ù. ÀÌ·¯ÇÑ °³³äµéÀÌ R¿¡¼ Ç¥ÇöµÇ´Â ¹æ¹ýÀ» ÇнÀÇÏ´Â °ÍÀº ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ´ëÇÑ ÀÚ½ÅÀÇ ±âÁ¸ Áö½ÄÀ» Áõ´ëÇÏ´Â µ¥ µµ¿òÀ» ÁÖ°í, ½º½º·Î °³¼±ÇÒ ¼ö ÀÖ´Â ¿µ¿ªÀ» ½Äº°ÇÏ´Â µ¥µµ µµ¿òÀ» ÁÙ ¼ö ÀÖ´Ù. _5p
·º½ÃÄ® ½ºÄÚÇÎÀº ÇÔ¼ö°¡ È£ÃâµÆÀ» ¶§°¡ ¾Æ´Ï¶ó »ý¼ºµÇ¾úÀ» ¶§ ÁßøµÇ´Â(nested) ¹æ½Ä¿¡ µû¶ó ½Éº¼ °ªÀ» ã´Â´Ù. ·º½ÃÄ® ½ºÄÚÇÎÀ» »ç¿ëÇÏ¸é º¯¼öÀÇ °ªÀ» ¾îµð¿¡¼ ã¾Æ¾ß ÇÒÁö ¾Ë¾Æ³»±â À§ÇØ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ¾ß ÇÒ Çʿ䰡 ¾ø´Ù. ´ÜÁö ÇÔ¼öÀÇ Á¤ÀǸ¸ »ìÆìº¸¸é µÈ´Ù. _77p
ÁÖ·ù OO ¾ð¾î·Î ÇÁ·Î±×·¡¹ÖÀ» ÇØ¿Ô´Ù¸é RC´Â ¸Å¿ì ÀÚ¿¬½º·¯¿ö º¸ÀÏ °ÍÀÌ´Ù. ±×·¯³ª À̰ÍÀº °¡º¯ »óŸ¦ ÅëÇÑ ÆÄ±Þ È¿°ú¸¦ ¹ß»ý½Ãų ¼ö Àֱ⠶§¹®¿¡ ÀÌÇØÇϱⰡ ´õ ¾î·Æ´Ù. ¿¹¸¦ µé¾î, ÀϹÝÀûÀ¸·Î R¿¡¼ f(a, b)¸¦ È£ÃâÇÒ ¶§ a¿Í b°¡ ¼öÁ¤µÇÁö ¾ÊÀ» °ÍÀ» °¡Á¤ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ µÑÀÌ RC °´Ã¼¶ó¸é Áï½Ã ¼öÁ¤µÉ ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î RC °´Ã¼¸¦ »ç¿ëÇÒ ¶§ °¡´ÉÇÑ ÆÄ±Þ È¿°ú¸¦ ÃÖ¼ÒÈÇÏ¿© °¡º¯ »óŰ¡ ¹Ýµå½Ã ÇÊ¿äÇÑ °æ¿ì¿¡¸¸ ±×°ÍÀ» »ç¿ëÇϱ⠹ٶõ´Ù. ´ëºÎºÐÀÇ ÇÔ¼ö´Â ±â´ÉÀûÀ̾î¾ß Çϰí, ÆÄ±Þ È¿°ú¿¡¼ ÀÚÀ¯·Î¿ö¾ß ÇÑ´Ù. À̰ÍÀº Äڵ带 ÀÌÇØÇϱ⠽±°Ô ÇÏ¿©, ´Ù¸¥ R »ó¿ëÀÚ°¡ ±× Äڵ带 ¼ö¿ùÇÏ°Ô ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. _129p
sapply( )¿Í vapply( )´Â Ãâ·ÂÀ» ´Ü¼øÇÏ°Ô ¿øÀÚ º¤ÅÍ·Î ¸¸µé¾î ³»´Â Á¡À» Á¦¿ÜÇϸé lapply( )¿Í ¸Å¿ì À¯»çÇÏ´Ù. sapply( )°¡ ¿¹»óµÇ´Â ¹Ý¸é, vapply( )´Â Ãâ·Â À¯ÇüÀ» ÁöÁ¤Çϱâ À§ÇÑ Ãß°¡Àû ÀÎÀÚ¸¦ °¡Áø´Ù. sapply( )´Â ŸÀÌÇÎÀ» ÁÙÀ̱⠶§¹®¿¡ ÀÎÅÍ·ºÆ¼ºêÇÏ°Ô »ç¿ëÇÏ´Â °æ¿ì°¡ °¡Àå ÁÁ´Ù. ±×·¯³ª ÀÚ½ÅÀÇ ÇÔ¼ö ³»¿¡¼ »ç¿ëÇÒ ¶§ ¿ÇÁö ¾ÊÀº ÀÔ·Â À¯ÇüÀ» Á¦°øÇϸé ÀÌ»óÇÑ ¿À·ù¸¦ º¸°Ô µÉ °ÍÀÌ´Ù. vapply( )´Â ´õ ÀåȲÇÏÁö¸¸, º¸´Ù Á¤º¸°¡ dzºÎÇÑ ¿À·ù ¸Þ½ÃÁö¸¦ Á¦°øÇϰí Àý´ë·Î ¾Æ¹« Ç¥½Ã ¾øÀÌ ½ÇÆÐÇÏÁö ¾Ê´Â´Ù. ´Ù¸¥ ÇÔ¼ö ¾È¿¡ »ç¿ëÇÏ´Â °Í¿¡´Â ´õ Àß ¸Â´Â´Ù. _212p
RÀÇ ¼º´É¿¡ ´ëÇØ ÀÌÇØÇϱâ À§ÇØ ¾ð¾î·Î¼¿Í ±× ¾ð¾îÀÇ ±¸ÇöÀ¸·Î¼ R¿¡ ´ëÇØ »ý°¢ÇØ º¸´Â °ÍÀÌ µµ¿òÀÌ µÈ´Ù. R ¾ð¾î´Â Ãß»óÀûÀÌ´Ù. R ¾ð¾î´Â R Äڵ尡 ÀǹÌÇÏ´Â ¹Ù¿Í µ¿ÀÛÇÏ´Â ¹æ¹ýÀ» Á¤ÀÇÇÑ´Ù. ±× ±¸ÇöÀº °ß°íÇÏ´Ù. Áï, R Äڵ带 ÀÐ¾î °á°ú¸¦ °è»êÇÑ´Ù. ´ëºÎºÐÀÇ À¯¸íÇÑ ±¸ÇöÀº r-project.org(http://r-project.org)¿¡ ÀÇÇÑ °ÍÀÌ´Ù. GNU R ±¸Çö°ú ÀÌ ÀåÀÇ µÞºÎºÐ¿¡¼ ³íÇÒ ´Ù¸¥ ±¸Çöµé ¹× R ¾ð¾î¸¦ ±¸ºÐÇÒ °ÍÀÌ´Ù. _346p
¸Ê(map)Àº ¼¼Æ®¿Í À¯»çÇÏÁö¸¸, Á¸Àç ¶Ç´Â ºÎÀ縦 ÀúÀåÇÏ´Â ´ë½Å, Ãß°¡ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº °ªÀ» ã¾Æ¾ßÇÏ´Â table( ) ¶Ç´Â match( ) °°Àº ÇÔ¼ö¿¡ À¯¿ëÇÏ´Ù. ¼¼Æ®¿Í ¸¶Âù°¡Áö·Î, ¼ø¼ ÀÖ´Â ¹öÀü(std::map)°ú ¼ø¼°¡ ¾ø´Â ¹öÀü(std::unordered_map)ÀÌ ÀÖ´Ù. ¸ÊÀº °ª°ú ۸¦ °®°í Àֱ⠶§¹®¿¡ ¸ÊÀ» ÃʱâÈÇÒ ¶§ map
, unordered_map µî µÎ ŸÀÔÀ» ¸ðµÎ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ »ç·Ê´Â mapÀ» »ç¿ëÇÏ¿© ¼öÄ¡Çü º¤ÅÍ¿¡ ´ëÇØ table( )À» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁØ´Ù. _436p
´Ý±â