[Top] [Contents] [Index] [ ? ]

Writing R Extensions

¼Õ¼­  
2. R ¤Î¥É¥­¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯  
3. R ¥³¡¼¥É¤ÎÀ°Íý¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°  
4. ¥·¥¹¥Æ¥à¤È¾¸À¸ì´Ö¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹  
5. R ¤Î API: C ¥³¡¼¥É¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È  
A. R ¤Î¡ÊÆâÉô¤Î¡Ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë´Ø¤¹¤ë»¨Â¿¤Ê¤³¤È  
B. R ¤Î¥³¡¼¥Ç¥£¥ó¥°¤Îɸ½à  
´Ø¿ô¤ÈÊÑ¿ô¤Îº÷°ú  
³µÇ°¤Îº÷°ú  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

¼Õ¼­

Saikat DebRoy¡Ê.Call ¤È .External ¤Î»ÈÍÑË¡¤Ë´Ø¤¹¤ëºÇ½é¤ÎÁð¹Æ¤ò½ñ¤¤¤¿¡Ë ¤È Adrian Trapletti¡ÊC++ ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤ò¤¯¤ì¤¿¡Ë¤Î¹×¸¥¤Ë¸ü¤¯ ´¶¼Õ¤¹¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. R ¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë

¥Ñ¥Ã¥±¡¼¥¸¤Ï¥ª¥×¥·¥ç¥ó¤Î¥³¡¼¥É¤ÈÉÕ°¥É¥­¥å¥á¥ó¥È¤òÆÉ¤ß¹þ¤àµ¡¹½¤òÄ󶡤¹¤ë¡£ R ¤ÎÇÛÉÛʪ¤Ï¡¢eda, mva, ¤½¤·¤Æ stepfun ¤È¤¤¤Ã¤¿¡¢´ö¤Ä¤«¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò ´Þ¤à¡£

1.1 ¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Â¤  
1.2 ¥³¥ó¥Õ¥£¥®¥å¥¢¤È¸åÊÒÉÕ¤±  
1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ  
1.4 CRAN ¤Ø¤ÎÅê¹Æ  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 ¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Â¤

°ì¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥Õ¥¡¥¤¥ë `DESCRIPTION' ¤È `INDEX' ¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê, ¤½¤·¤Æ¥Õ¥¡¥¤¥ë `R',`data', `exec', `inst', `man', `src', ¤½¤·¤Æ `tests' (some of which can be missing) ¤ò´Þ¤à¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Ê¤ë¡Ê´ö¤Ä¤«¤Ï·ç¤±¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¡Ë¡£

¾ì¹ç¤Ë¤è¤ë¤È¡¢¥Ñ¥Ã¥±¡¼¥¸¤Ï¤Þ¤¿¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë `configure' ¤È `cleanup' ¤ò´Þ¤à¤«¤âÃΤì¤Ê¤¤¡£ ¤³¤ì¤é¤Ï¡¢Unix ¤Ø¤Î°Ü¿¢¤ÎÁ°¡Ê`--clean' ¤¬Í¿¤¨¤é¤ì¤¿¤È¤­¡Ë¤È¸å¤Ë¼Â¹Ô¤µ¤ì¤ë¡¢ See section 1.2 ¥³¥ó¥Õ¥£¥®¥å¥¢¤È¸åÊÒÉÕ¤±¡£

1.1.1 DESCRIPTION ¥Õ¥¡¥¤¥ë  
1.1.2 INDEX ¥Õ¥¡¥¤¥ë  
1.1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê  
1.1.4 ¥Ñ¥Ã¥±¡¼¥¸¤Îº­  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.1 DESCRIPTION ¥Õ¥¡¥¤¥ë

`DESCRIPTION' ¥Õ¥¡¥¤¥ë¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Ë´Ø¤¹¤ë´ðËÜŪ¤Ê¾ðÊó¤ò´Þ¤ß¡¢¼¡¤Î¤è¤¦¤Ê½ñ¼°¤ò»ý¤Ä¡§

 
Package: pkgname
Version: 0.5-1
Date: 2000/01/04
Title: My first collection of functions
Author: Friedrich Leisch <F.Leisch@ci.tuwien.ac.at>.
Depends: R (>= 0.99), nlme
Description: A short (one paragraph) description of what
        the package does and why it may be useful.
License: GPL version 2 or newer
URL: http://www.r-project.org, http://www.another.url

·Ñ³¹Ô¡ÊÎ㤨¤Ð¡¢°ì¹Ô¤ò±Û¤¨¤ëµ­½Ò¡Ë¤Ï°ì¤Ä¤Î¶õÇò¤â¤·¤¯¤Ï¥¿¥Ö¤Ç»Ï¤Þ¤ë¡£ Íó `Package', `Version',`Author', ¤½¤·¤Æ `Description' ¤ÏÉԲķç¤Ç¤¢¤ë¡£ »Ä¤ê¤ÎÍó (`Date', `Depends', `Address',`URL', ...) ¤Ï̵¤¯¤Æ¤âÎɤ¤¡£ `Author' Íó¤Ï³Ñ³ç¸Ì¤Ç³ç¤Ã¤¿ÅŻҥᥤ¥ë¥¢¥É¥ì¥¹¤ò´Þ¤à¤Ù¤­¤Ç¤¢¤ë¡Ê¥Ð¥°Êó¹ðÅù¤òÁ÷¤ë¤¿¤á¡Ë¡£

`License' Íó¤ÏÀµ³Î¤Êʸ½ñ¡¢¤â¤·¤¯¤ÏÎɤ¯ÃΤé¤ì¤¿¾Êά·¿¡ÊÎ㤨¤Ð¡¢ `GPL', `LGPL', `BSD', ¤â¤·¤¯¤Ï `Artistic'¡Ë¤ò´Þ¤à¤Ù¤­¤Ç¤¢¤ë¡£ ¤ª¤½¤é¤¯¡¢¼ÂºÝ¤Î¥é¥¤¥»¥ó¥¹¥Õ¥¡¥¤¥ë¤Ø¤Î»²¾È¤¬Â³¤¯¤Ç¤¢¤í¤¦¡£ ¤³¤Î¾ðÊó¤ò´Þ¤à¤³¤È¤Ï¶Ë¤á¤Æ½ÅÍפǤ¢¤ë¡ª¤µ¤â¤Ê¤±¤ì¤Ð¡¢Â¾¤Î¿Í¤¬¤³¤Î¥Ñ¥Ã¥±¡¼¥¸ ¤Î¥³¥Ô¡¼¤òÇÛÉÛ¤¹¤ë¤³¤È¤¹¤éˡŪ¤ËÀµ¤·¤¯¤Ê¤¯¤Ê¤ë¤«¤âÃΤì¤Ê¤¤¡£

`Title' Íó¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Î´Êά¤Êµ­½Ò¤ò´Þ¤à¤Ù¤­¤Ç¡¢Ç¡²¿¤Ê¤ë·Ñ³¹Ô¤â´Þ¤à¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ ¤³¤Î¾ðÊó¤Ï R ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÊ̸ĤΠ`TITLE' ¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤Æ¤¤¤¿¡£ ¤³¤ì¤«¤é¤Ï¡¢`DESCRIPTION' ¥Õ¥¡¥¤¥ë¤Î `Title' Íó¤ò»ÈÍѤ·¤ÆÍߤ·¤¤¡£

¥ª¥×¥·¥ç¥ó¤Î `URL' Íó¤Ï¡¢¥³¥ó¥Þ¤ä¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿ URL ¤Î¥ê¥¹¥È¤ò ´Þ¤à¤³¤È¤¬¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢ºî¼Ô¤Î¥Û¡¼¥àÊǤ䥽¥Õ¥È¥¦¥§¥¢¤ÎÄɲþðÊó¤òµ­½Ò¤¹¤ëÊǤǤ¢¤ë¡£ ¤³¤ì¤é¤Î URL ¤Ï CRAN ¤Î¼ÂºÝ¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ËÊÑ´¹¤µ¤ì¤ë¡£

¥ª¥×¥·¥ç¥ó¤Î `Depends' Íó¤Ï¡¢¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬°Í¸¤·¤Æ¤¤¤ë¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î ¥³¥ó¥Þ¤ä¶õÇò¤Ç¶èÀÚ¤é¤ì¤¿¥ê¥¹¥È¤òÍ¿¤¨¤ë¡£ ¥Ñ¥Ã¥±¡¼¥¸Ì¾¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ÇÈæ³Ó±é»»»Ò¡Ê¸½ºß¤Î½ê `>=' ¤È `<=' ¤À¤±¤¬¥µ¥Ý¡¼¥È ¤µ¤ì¤Æ¤¤¤ë¡Ë¤È³ç¸Ì¤ËÆþ¤ì¤¿¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò´Þ¤à¡£ ¤Þ¤¿¡¢¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬ÆÃÄê¤Î R ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Í¸¤·¤Æ¤¤¤ë¤Î¤Ê¤é¡¢ ÆÃÄê¤Î¥Ñ¥Ã¥±¡¼¥¸Ì¾ `R' ¤ò´Þ¤ó¤ÇÎɤ¤¡£¤Ä¤Þ¤ê¡¢¥Ñ¥Ã¥±¡¼¥¸¤¬¥Ð¡¼¥¸¥ç¥ó 0.90 µÚ¤Ó¤½¤ì°Ê¹ß¤Ç¤Î¤ß ư¤¯¤Î¤Ç¤¢¤ì¤Ð¡¢`Depends' Íó¤Ë `R (>= 0.90)' ¤òÆþ¤ì¤ë¡£ ¾­Íè¤Î R ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¤³¤ÎÍó¤òɬÍפʥѥ屡¼¥¸¤Î¼«Æ°ÆÉ¤ß¹þ¤ß¤Î¤¿¤á¤Ë»È¤¦¤Ç¤¢¤í¤¦¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢`Depends' Íó¤òɬÍפ«¤âÃΤì¤Ê¤¤¥½¥Õ¥È¥¦¥§¥¢¤ÎÃí¼á¤Î¤¿¤á¤Ë»È¤Ã¤¿¤ê¡¢ ÉÔÀµ³Î¤Ê¹½Ê¸¤ò»È¤ï¤Ê¤¤¤ÇÍߤ·¤¤¡£Â¾¤Î°Í¸´Ø·¸¤Ï `Description' Í󤫡¢Ê̤Π`README' ¥Õ¥¡¥¤¥ë¤ËÍåÎ󤹤٤­¤Ç¤¢¤ë¡£R ¤Î `INSTALL' µ¡¹½¤Ï´û¤Ë¡¢»ÈÍÑÃæ¤Î R ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬°Ü¿¢¤µ¤ì¤ë¥Ñ¥Ã¥±¡¼¥¸¤Ë½½Ê¬¤ÊÄø¿·¤·¤¤¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.2 INDEX ¥Õ¥¡¥¤¥ë

¥Õ¥¡¥¤¥ë `INDEX' ¤Ï¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î½½Ê¬¶½Ì£¤¢¤ë³Æ¥ª¥Ö¥¸¥§¥¯¥ÈËè¤Ë¡¢Ì¾Á°¤Èµ­½Ò¤òÍ¿¤¨¤ë°ì¹Ô¤ò ´Þ¤à¡Êprint ¥á¥½¥Ã¥ÉÅù¤ÎÄ̾ïÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤´Ø¿ô¤Ï´Þ¤á¤ëɬÍפÏ̵¤¤¤«¤âÃΤì¤Ê¤¤¡Ë¡£ ¤¢¤Ê¤¿¤Î¥·¥¹¥Æ¥à¤Ç Perl ¤¬»È¤¨¤ë¤«¡¢package builder (see section 1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ) ¤ò»È¤¨¤Ð¡¢ R CMD Rdindex man > INDEX Åù¤Îµ¡Ç½¤Ç¤³¤Î¥Õ¥¡¥¤¥ë¤ò¼«Æ°Åª¤Ë¤Ä¤¯¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¤³¤È¤ò Ãí°Õ¤·¤è¤¦¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê

`R' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ï R ¤Î¥³¡¼¥É¥Õ¥¡¥¤¥ë¤ò´Þ¤à¡£°Ü¿¢¤µ¤ì¤ë¤Ù¤­¥³¡¼¥É¥Õ¥¡¥¤¥ë¤Ï ¡Ê¾®¤â¤·¤¯¤ÏÂç¡Ëʸ»ú¤Ç»Ï¤Þ¤ê¡¢`.R', `.S', `.q', `.r', ¤â¤·¤¯¤Ï `.s' ¤Î¤¤¤º¤ì¤«¤Î³ÈÄ¥»Ò¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£²æ¡¹¤Ï `.R' ¤òÍѤ¤¤ë¤³¤È¤ò´«¤á¤ë¡£ ¤Ê¤¼¤Ê¤é¡¢¤³¤Î³ÈÄ¥»Ò¤Ï¾¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ç»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤ë¤«¤é¤Ç¤¢¤ë¡£ R ¥ª¥Ö¥¸¥§¥¯¥È¤¬ÉÕÃͤˤè¤êÀ¸À®¤Ç¤­¤ë¤è¤¦¤Ë¡¢source() ¤òÍѤ¤¤Æ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¤³¤È¤¬ ¤Ç¤­¤ë¤Ù¤­¤Ç¤¢¤ë¡£¥Õ¥¡¥¤¥ë¤È¡¢¤½¤ì¤Ë¤è¤êÀ¸À®¤µ¤ì¤ë R ¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Î´Ö¤Ë¤Ï´ØÏ¢¤¬Ìµ¤¯¤Æ¤âÎɤ¤¡£ ɬÍפʤ顢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î¤É¤ì¤«¡ÊÎò»ËŪ´·Îã¤Ç¤Ï `zzz.R'¡Ë¤Ï¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤ò ÆÉ¤ß¹þ¤à¤¿¤á¤Ë .First.lib() Æâ¤Ç library.dynam() ¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£

`man' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î "R documentation" (Rd) ½ñ¼°¤Ë¤è¤ë ¥É¥­¥å¥á¥ó¥È¤ò´Þ¤à¤Ù¤­¤Ç¤¢¤ë¡£°Ü¿¢¤µ¤ì¤ë¤Ù¤­¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë¤ÏƱ¤¸¤¯¡Ê¾®¤â¤·¤¯¤ÏÂç¡Ëʸ»ú¤Ç »Ï¤Þ¤ê¡¢³ÈÄ¥»Ò `.Rd' ¡Ê´ûÄê¤Ç¤Ï¡Ë¤â¤·¤¯¤Ï `.rd' ¤ò»ý¤Ä¤Ù¤­¤Ç¤¢¤ë¡£ ¾ÜºÙ¤Ï See section 2. R ¤Î¥É¥­¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯ ¤ò»²¾È¤»¤è¡£ ¥Ñ¥Ã¥±¡¼¥¸Ãæ¤ÎÁ´¤Æ¤Î¥æ¡¼¥¶¡¼¥ì¥Ù¥ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥É¥­¥å¥á¥ó¥È²½¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ ¤â¤·¡¢¥Ñ¥Ã¥±¡¼¥¸ pkg ¤¬ "ÆâÉôŪ" ¤Î¤ß¤Ë»ÈÍѤµ¤ì¤ë¥æ¡¼¥¶¡¼¥ì¥Ù¥ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò ´Þ¤à¤Ê¤é¤Ð¡¢¤½¤¦¤·¤¿¥ª¥Ö¥¸¥§¥¯¥ÈÁ´¤Æ¤òʸ¾Ï²½¤·¤¿¥Õ¥¡¥¤¥ë `pkg-internal.Rd' ¤òÍѰդ¹¤Ù¤­¤Ç¡¢ ÌÀ³Î¤Ë¤³¤ì¤é¤Ï¥æ¡¼¥¶¡¼¤Ë¤è¤ê¸Æ¤Ó½Ð¤µ¤ì¤ë¤³¤È¤ò´ë¿Þ¤·¤Æ¤¤¤Ê¤¤¤³¤È¤ò½Ò¤Ù¤ë¤Ù¤­¤Ç¤¢¤ë¡£ Î㤨¤Ð¡¢R ¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥óÃæ¤Î¥Ñ¥Ã¥±¡¼¥¸ ts ¤ò¸«¤è¡£

`R' ¤È `man' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ï OS ¤Ë°Í¸¤·¤¿ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê named `unix', `windows' ¤â¤·¤¯¤Ï `mac' ¤ò´Þ¤ó¤ÇÎɤ¤¡£

¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤ËÂФ¹¤ë C, C++, ¤â¤·¤¯¤Ï FORTRAN ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¡¢¤½¤·¤Æ¥ª¥×¥·¥ç¥ó¤Î¥Õ¥¡¥¤¥ë `Makevars' ¤â¤·¤¯¤Ï `Makefile' ¤Ï `src' Ãæ¤ËÃÖ¤¯¡£ ¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬ R CMD INSTALL ¤òÍѤ¤¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¤È¤­¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤È¥ê¥ó¥¯¤òÀ©¸æ¤· R Ãæ¤ËÆÉ¤ß¹þ¤Þ¤ì ¤ë¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ë¤¹¤ë¤¿¤á¤Ë Make ¤¬»È¤ï¤ì¤ë¡£ ¤³¤Î¤¿¤á¤Î´ûÄê¤ÎÊÑ¿ô¤Èµ¬Â§¤¬¤¢¤ë (R ¤¬ configure ¤µ¤ì¤ë»þ¤Ë·èÄꤵ¤ì `$R_HOME/etc/Makeconf' ¤Ëµ­Ï¿¤µ¤ì¤ë)¡£ ¤â¤·¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë(`-I' ¥ª¥×¥·¥ç¥ó)¤ä¥ê¥ó¥¯¤Î¤¿¤á¤ÎÄɲäΥ饤¥Ö¥é¥ê(`-l' ¤È `-L' ¥ª¥×¥·¥ç¥ó) ¤òõ¤¹¤¿¤á¤ËÄɲäΥǥ£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë»þ¤Ï¡¢¤³¤ì¤ò `src/Makevars' Ãæ¤ÎÊÑ¿ô PKG_CPPFLAGS ¤È PKG_LIBS ¤òÍѤ¤¤Æ¹Ô¤¦¡£(C, C++, Ëô¤Ï FORTRAN ¥³¥ó¥Ñ¥¤¥é¤Ë°ú¤­ÅϤµ¤ì¤ëÄɲäΥե饰¤Ï¤½¤ì¤¾¤ì¡¢ÊÑ¿ô PKG_CFLAGS, PKG_CXXFLAGS ¤½¤·¤Æ PKG_FFLAGS ¤òÍѤ¤¤ë¡£) ¤³¤Îµ¡¹½¤Ï¥Ñ¥Ã¥±¡¼¥¸¸ÇÍ­¤Î `Makefile' ¤òɬÍפȤ·¤Ê¤¤Äø¤Ë½½Ê¬ °ìÈÌŪ¤Ç¤¢¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£ ¤â¤·¤½¤¦¤·¤¿¥Õ¥¡¥¤¥ë¤òÇÛÉÛ¤¹¤ë¤È¤­¤Ï¡¢¤½¤ì¤¬Á´¤Æ¤Î R ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Çưºî¤¹¤ë¤Ë½½Ê¬¤Ê¤À¤±°ìÈÌŪ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤«¤Ê¤ê ¤ÎÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£¤â¤·É¬Íפʤ顢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Î¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¤âÎɤ¤¡£Î㤨¤Ð¡¢Windows ¾å¤Ç¤Ï `Makevars.win' ¤â¤·¤¯¤Ï `Makefile.win' ¤¬ `Makevars' ¤ä `Makefile' ¤ËÍ¥À褹¤ë¡£

`data' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤¬ data() ¤òÍѤ¤¤ÆÆÉ¤ß¹þ¤á¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤ÎÄɲäΥǡ¼¥¿¥Õ¥¡¥¤¥ë ÍͤǤ¢¤ë¡£¸½ºß¤Î¤È¤³¤í¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ï¤½¤Î³ÈÄ¥»Ò¤Ç»Ø¼¨¤µ¤ì¤ë¼¡¤Î»°¤Ä¤Î¥¿¥¤¥×¤Î¤¤¤º¤ì¤«¤ò»ý¤Ä¤³¤È¤¬½ÐÍè¤ë¡§ ¥×¥ì¡¼¥ó R ¥³¡¼¥É (`.R' Ëô¤Ï `.r')¡¢É½ (`.tab', `.txt' Ëô¤Ï `.csv')¡¢¤½¤·¤Æ save() ¥¤¥á¡¼¥¸ (`.RData' Ëô¤Ï `.rda')¡£ (²ÄÈÂÀ­¤Î¤¿¤á¤Ë¡¢save(, ascii=TRUE) ¤òÍѤ¤¤Æ¥»¡¼¥Ö¤·¤¿¥¤¥á¡¼¥¸¤ò»ÈÍѤ·¤ÆÍߤ·¤¤¡£) R ¤Î¥³¡¼¥É¤Ï "¼«¸Ê½¼Â­Åª" ¤Ç¡¢¥Ñ¥Ã¥±¡¼¥¸¤¬Ä󶡤¹¤ë;ʬ¤Îµ¡Ç½¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£ ¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ï¤Þ¤¿¥Ñ¥Ã¥±¡¼¥¸¤òÆÉ¤ß¹þ¤à¤³¤È¤Ê¤·¤Ë»ÈÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ `data' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÏËô»ÈÍѲÄǽ¤Ê¥Ç¡¼¥¿¥»¥Ã¥È¤òÀâÌÀ¤¹¤ë `00Index' ¥Õ¥¡¥¤¥ë¤ò´Þ¤à¤Ù¤­¤Ç¤¢¤ë¡£ ÍýÁÛŪ¤Ë¤Ï¡¢¤³¤ì¤Ï³Æ¥Ç¡¼¥¿¥»¥Ã¥È¤Î¥ª¥ó¥é¥¤¥óµ­½Ò¤È¡¢`man' ¥Ç¥£¥ì¥¯¥È¥êÃæ¤Î´°Á´¤Ê¥É¥­¥å¥á¥ó¥È¤ò »ý¤Ä¤Ù¤­¤Ç¤¢¤ë¡£

`inst' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¿È¤Ï¥¤¥ó¥¹¥È¡¼¥ëÀè¥Ç¥£¥ì¥¯¥È¥ê¤ËºÆµ¢Åª¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¤Ç¤¢¤í¤¦¡£

¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê `tests' ¤Ï¡¢R ¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤È°ì½ï¤ËÇÛÉÛ¤µ¤ì¤ë¸Ä¡¹¤Î¸¡ºº¤ÎÍͤʡ¢ ÄɲäΥѥ屡¼¥¸-¸ÇÍ­¤Î¸¡ººÍÑ¥³¡¼¥ÉÍѤǤ¢¤ë¡£

¸¡ººÍÑ¥³¡¼¥É¤ÏľÀÜ `.R' ¥Õ¥¡¥¤¥ë¤ËÆþ¤ì¤ë¤«¡¢Ëô¤ÏÂбþ¤¹¤ë `.R' ¥Õ¥¡¥¤¥ë¤ò¤½¤ì¤«¤éÀ¸À®¤¹¤ë¥³¡¼¥É¤ò ´Þ¤à `.Rin' ¥Õ¥¡¥¤¥ë(Î㤨¤Ð¡¢¥Ñ¥Ã¥±¡¼¥¸Ãæ¤ÎÁ´¤Æ¤Î´Ø¿ô¤ò½¸¤á¡¢¤½¤ì¤«¤é¤½¤ì¤é¤ò¤â¤Ã¤È¤â´ñ̯¤Ê°ú¿ô¤Ç¸Æ¤Ó ½Ð¤¹Åù)·Ðͳ¤ÇÄ󶡤µ¤ì¤ë¡£`.R' ¥Õ¥¡¥¤¥ë¤òÁö¤é¤»¤¿·ë²Ì¤Ï `.Rout' ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£ ¤â¤·Âбþ¤¹¤ë `.Rout.save' ¥Õ¥¡¥¤¥ë¤¬¤¢¤ì¤Ð¡¢¤³¤ÎÆó¤Ä¤¬Èæ³Ó¤µ¤ì¡¢¥¨¥é¡¼¤ò°ú¤­µ¯¤³¤¹¤³¤È̵¤·¤ËÁê°ãÅÀ¤¬Êó¹ð¤µ¤ì¡£

ºÇ¸å¤Ë¡¢`exec' ¤Ï¥Ñ¥Ã¥±¡¼¥¸¤¬É¬ÍפȤ¹¤ëÄÉ²Ã¤Î¼Â¹Ô¥×¥í¥°¥é¥à¡¢Åµ·¿Åª¤Ë¤Ï¥·¥§¥ë¤â¤·¤¯¤Ï Perl ¥¹¥¯¥ê¥×¥È¡¢ ¤ò´Þ¤ó¤Ç¤âÎɤ¤¤«¤âÃΤì¤Ê¤¤¡£¤³¤Îµ¡¹½¤Ï¸½ºßÁ´¤Æ¤Î Unix ¥Ñ¥Ã¥±¡¼¥¸¤Ç»È¤ï¤ì¤Æ¤Ï¤ª¤é¤º¡¢°ÍÁ³¤È¤·¤Æ¼Â¸³Åª¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1.4 ¥Ñ¥Ã¥±¡¼¥¸¤Îº­

´ö¤Ä¤«¤Î¥Ñ¥Ã¥±¡¼¥¸¤òº­, bundle ¤È¤·¤ÆÇÛÉÛ¤¹¤ë¤Î¤¬ÊØÍø¤Ê¾ì¹ç¤¬¤¢¤ë¡£ (¸½ºß¤Î¼çÍפÊÎã¤Ï»Í¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò´Þ¤à VR¡£) Unix ¤È Windows ¤Ë±÷¤±¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Îº­¤ò½èÍý¤Ç¤­¤ë¡£

°ì¤Ä¤Îº­¤Î `DESCRIPTION' ¥Õ¥¡¥¤¥ë¤Ï¼¡¤Î¤è¤¦¤Ê;ʬ¤Î `Bundle' Íó¤ò»ý¤Ä

 
Bundle: VR
Contains: MASS class nnet spatial
Version: 6.1-6
Date: 1999/11/26
Author: S original by Venables & Ripley.
  R port by Brian Ripley <ripley@stats.ox.ac.uk>, following
  earlier work by Kurt Hornik and Albrecht Gebhardt.
BundleDescription: Various functions from the libraries of
  Venables and Ripley, `Modern Applied Statistics with S-PLUS'
  (3rd edition).
License: GPL (version 2 or later)

`Contains' Íó¤Ï¥Ñ¥Ã¥±¡¼¥¸¤ò¥ê¥¹¥È¤¹¤ë¡£¤³¤ì¤Ï̾Á°¤òÍ¿¤¨¤é¤ì¤¿¸Ä¡¹¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë ¼ý¤á¤é¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¡£`DESCRIPTION' ¥Õ¥¡¥¤¥ë¤Ï¡¢º­¤Î `DESCRIPTION' ¥Õ¥¡¥¤¥ë ¤Ë ÄɲäÎÍó¤À¤±¤ò´Þ¤à `DESCRIPTION.in' ¥Õ¥¡¥¤¥ë¤ËÃÖ¤­´¹¤¨¤é¤ì¤Æ¤¤¤ë¤³¤È¤ò½ü¤±¤Ð¡¢¤³¤ì¤é¤Ï ¤¢¤é¤æ¤ëÅÀ¤Çɸ½à¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ç¤¢¤ë¡£

 
Package: spatial
Description: Functions for kriging and point pattern analysis.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 ¥³¥ó¥Õ¥£¥®¥å¥¢¤È¸åÊÒÉÕ¤±

¤â¤·¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤ÎÁ°¤Ë¥·¥¹¥Æ¥à°Í¸¤Î¤¢¤ë¥³¥ó¥Õ¥®¥å¥ì¡¼¥·¥ç¥ó ¤òɬÍפȤ¹¤ë¤Ê¤é¤Ð¡¢Â¾¤ÎÁ´¤Æ¤Î¼Â¹Ô¤ÎÁ°¤Ë R CMD INSTALL ¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë ¥¹¥¯¥ê¥×¥È `configure' ¤ò¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë´Þ¤á¤Æ¤âÎɤ¤¡£ ¤³¤ì¤Ï autoconf ¤Ë¤è¤êºî¤ê½Ð¤µ¤ì¤ë¥¹¥¯¥ê¥×¥È¤Ç¤âÎɤ¤¤¬¡¢ºî¼Ô¼«¿È¤¬½ñ¤¤¤¿¥¹¥¯¥ê¥×¥È¤Ç¤âÎɤ¤¡£ ¥Ñ¥Ã¥±¡¼¥¸¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤ê»ÈÍѤµ¤ì¤ë»þÅÀ¤Ç¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÍ¿¤¨¤ë¤è¤ê¤â¡¢Âбþ¤¹¤ë¥Ñ¥Ã¥±¡¼¥¸ Ãæ¤Î¥³¡¼¥É¤¬¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËưºîÉÔǽ¤Ë¤Ê¤ë¤è¤¦¤ÊÈóɸ½àŪ¤Ê¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤ò¤³¤ì¤ò ÍѤ¤¤Æ¸¡½Ð¤»¤è¡£Í×Ì󤹤ì¤Ð¡¢autoconf ¤ÎÁ´Ç½ÎÏ(ÊÑ¿ô¤ÎÂåÆþ¡¢¥é¥¤¥Ö¥é¥ê¤Î¸¡º÷Åù)¤¬³ÈÄ¥¥Ñ¥Ã¥±¡¼¥¸ ¤Ç»È¤¨¤ë¤è¤¦¤Ë¤»¤è¡£

¥¹¥¯¥ê¥×¥È `cleanup' ¤¬Â¸ºß¤·¡¢¥ª¥×¥·¥ç¥ó `--clean' ¤¬Í¿¤¨¤é¤ì¤ì¤Ð¡¢R CMD INSTALL ¤Ë ¤è¤êºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼¥¹¥Ä¥ê¡¼¤òÀ¶ÁݽÐÍè¤ë¡£ÆÃ¤Ë `configure' ¤¬ºî¤ê½Ð¤·¤¿¥Õ¥¡¥¤¥ë ¤¬¾Ã¤µ¤ì¤ë¡£

Îã¤È¤·¤Æ (C Ëô¤Ï FORTRAN) ¥é¥¤¥Ö¥é¥ê¡¼ foo ¤¬Ä󶡤¹¤ëµ¡Ç½¤ò»È¤¤¤¿¤¤¤È¤·¤è¤¦¡£ autoconf ¤òÍѤ¤¡¢¥é¥¤¥Ö¥é¥ê¡¼¤ò¸¡ºº¤·¡¢ÊÑ¿ô HAVE_FOO ¤¬Â¸ºß¤¹¤ì¤Ð TRUE ¤Ë ¤µ¤â¤Ê¤±¤ì¤Ð FALSE ¤ËÀßÄꤷ¡¢¤½¤ì¤«¤é¤³¤ÎÃͤò (HAVE_FOO¤òÃͤ˻ý¤ÄÆþÎÏ¥Õ¥¡¥¤¥ëÃæ¤Î¥¤¥ó¥¹¥¿¥ó¥¹ `@HAVE_FOO@' ÃÖ¤­´¹¤¨)½ÐÎÏ¥Õ¥¡¥¤¥ëÃæ¤Ë½ÐÎϤ¹¤ë¡¢ ¥³¥ó¥Õ¥£¥®¥å¥¢¥¹¥¯¥ê¥×¥È¤ò½ñ¤¯¤³¤È¤¬½ÐÍè¤ë¡£ Î㤨¤Ð¡¢Ì¾Á°¤¬ bar ¤Î´Ø¿ô¤ò¡¢¥é¥¤¥Ö¥é¥ê¡¼ foo ¤ò¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ë¤è¤ê (¤Ä¤Þ¤ê `-lfoo' ¤ò»È¤¦)»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¹Í¤¨¤é¤ì¤ë

 
AC_CHECK_LIB(foo, fun, HAVE_FOO=TRUE, HAVE_FOO=FALSE)
AC_SUBST(HAVE_FOO)
...
AC_OUTPUT(foo.R)

`foo.R.in' Ãæ¤ÎÂбþ¤¹¤ë R ´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦

 
foo <- function(x) {
    if(!@HAVE_FOO@) stop("Sorry, library `foo' is not available")
    ...

¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é configure ¤Ï¡¢(ɬÍפʵ¡Ç½¤ò»ý¤Ä)¥é¥¤¥Ö¥é¥ê¡¼ foo ¤¬Â¸ºß¤·¤Ê¤±¤ì¤Ð¡¢ ¼¡¤Î¤è¤¦¤Ê¼ÂºÝ¤Î R ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë `foo.R' ¤òºî¤ë¡£

 
foo <- function(x) {
    if(!FALSE) stop("Sorry, library `foo' is not available")
    ...

¤³¤Î¾ì¹ç¡¢¾å¤Î R ¥³¡¼¥É¤Ï¼ÂºÝ¤Ë¤Ï´Ø¿ô¤ò̵¸ú¤Ë¤¹¤ë¡£

ÍøÍѲÄǽ¤ÊËô¤Ï·ç¤±¤Æ¤¤¤ëµ¡Ç½¤ËÂФ¹¤ë°Û¤Ê¤Ã¤¿Éôʬ¥Õ¥¡¥¤¥ë¤ò»È¤¦¤³¤È¤â½ÐÍè¤ë¤Ç¤¢¤í¤¦¡£

`configure' ¥¹¥¯¥ê¥×¥È¤Ï¥¦¥£¥ó¥É¥¦¥º¥·¥¹¥Æ¥à¤Ç¤Ï¤¦¤Þ¤¯Æ¯¤«¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¤³¤È¤ò ǰƬ¤Ë¤ª¤¯¤Ù¤­¤Ç¤¢¤ë(¤³¤ì¤Ï autoconf ¤¬ºî¤ê½Ð¤¹¥¹¥¯¥ê¥×¥È¤Ç¤ÏÉáÄ̤Ǥ¢¤ë¤¬¡¢ ´Êñ¤Ê¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ïµ¡Ç½¤¹¤ë)¡£ ¤â¤·¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥±¡¼¥¸¤¬¹­¤¯ÍøÍѲÄǽ¤Ë¤Ê¤ë¤¿¤á¤Ë¤Ï¡¢Èó¥æ¥Ë¥Ã¥¯¥¹¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Î ¥æ¡¼¥¶¡¼¤ËÂФ¹¤ë¥³¥ó¥Õ¥£¥®¥å¥¢¤Î»ÅÊý¤òʸ¾Ï¤Ç½½Ê¬¤ËÍ¿¤¨¤ÆÍߤ·¤¤¡£

µ©¤Ê¾ì¹ç¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤È¸åÊÒÉÕ¤±¥¹¥¯¥ê¥×¥È¤Ï¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë ¤Ù¤­¾ì½ê¤òÃΤëɬÍפ¬¤¢¤ë¡£°ìÎã¤Ï C ¥³¡¼¥É¤ò»ÈÍѤ·Æó¤Ä¤Î¶¦Í­¥é¥¤¥Ö¥é¥ê¡¼/DLL¤òºî¤ê½Ð¤¹ ¥Ñ¥Ã¥±¡¼¥¸¤Ç¤¢¤ë¡£ÉáÄÌ¡¢R ¤ËưŪ¤ËÆÉ¤ß¤³¤Þ¤ì¤ë¥é¥¤¥Ö¥é¥ê¡¼¤ÏÆóÈÖÌܤν¾Â°¥é¥¤¥Ö¥é¥ê¡¼ ¤ËÂФ·¥ê¥ó¥¯¤µ¤ì¤ë¡£¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î½¾Â°¥é¥¤¥Ö¥é¥ê¡¼¤Î°ÌÃÖ¤ò R ¤¬Æ°Åª¤ËÆÉ¤ß¤³¤à ¥é¥¤¥Ö¥é¥ê¡¼¤Ë²Ã¤¨¤ë¤³¤È¤¬½ÐÍè¤ë¡£¤³¤ì¤Ï³Æ¥æ¡¼¥¶¡¼¤¬ LD_LIBRARY_PATH ´Ä¶­ÊÑ¿ô¤ÎÃͤò ÀßÃÖ¤¹¤ëɬÍפ¬Ìµ¤¤¤³¤È¤ò°ÕÌ£¤·¡¢ÂèÆó¥é¥¤¥Ö¥é¥ê¡¼¤Ï¼«Æ°Åª¤Ë»²¾È¤µ¤ì¤ë¡£ Ê̤ÎÎã¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤¬¼Â¹Ô»þ¤ËɬÍפʻٱç¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¡¢ ¤½¤ì¤é¤Î°ÌÃÖ¤¬¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë R ¤Î¥Ç¡¼¥¿¹½Â¤¤ËÂåÆþ¤µ¤ì¤ë¾ì¹ç¤Ç¤¢¤ë¡£ (¤³¤ì¤Ï Java ¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î Java Archive ¥Õ¥¡¥¤¥ë¤Çµ¯¤³¤ë¡£)

¾å°Ì¤Î¥é¥¤¥Ö¥é¥ê¡¼¤Î¥Ç¥£¥ì¥¯¥È¥ê̾ (¤Ä¤Þ¤ê¡¢`-l' °ú¿ô¤Ç»ØÄꤵ¤ì¤ë¤â¤Î)¤È¥Ñ¥Ã¥±¡¼¥¸¼«¿È¤Î ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢´Ä¶­ÊÑ¿ô R_LIBRARY_DIR ¤È R_PACKAGE_DIR ¤òÍѤ¤¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¥¹¥¯¥ê¥×¥È ¤ËÅÁ¤¨¤ë¤³¤È¤¬½ÐÍè¤ë¡£¹¹¤Ë¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸Ì¾ (Î㤨¤Ð `survival' ¤ä `MASS' ¤È¤¤¤Ã¤¿)¤Ï¥·¥§¥ëÊÑ¿ô R_PACKAGE_NAME ¤«¤éÍýÍѲÄǽ¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ

R ¤Î¥Ñ¥Ã¥±¡¼¥¸¸¡ºº¥×¥í¥°¥é¥à R CMD check ¤òÍѤ¤¡¢R ¤Î¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤¬Àµ¤·¤¯Æ°¤¯¤«¤É¤¦¤« ¸¡ºº¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£(Windows ¤Ç¤ÎÂбþ¤¹¤ëÌ¿Îá¤Ï Rcmd check ¤Ç¤¢¤ë¡£) ¤³¤ì¤Ï°ìÏ¢¤Î¸¡ºº¤ò¼Â¹Ô¤¹¤ë¡£

  1. À褺¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤è¤¦¤È¤¹¤ë¡£¤³¤ì¤Ï¥Ø¥ë¥×¥Õ¥¡¥¤¥ëÃæ¤Î·ç¤±¤Æ¤¤¤ëÁê¸ß»²¾È¤È½ÅÊ£¤·¤¿ ¥¨¥¤¥ê¥¢¥¹¤ò·Ù¹ð¤¹¤ë¡£

  2. `DESCRIPTION' ¥Õ¥¡¥¤¥ë¤¬´°Á´¤«¤É¤¦¤«¸¡ºº¤¹¤ë¡£

  3. Rd ¥Õ¥¡¥¤¥ë¤Î \name, \alias ¤½¤·¤Æ \keyword Í󤬸¡ºº¤µ¤ì¤ë¡£

  4. ¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Îʸ¾Ï²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥æ¡¼¥¶¡¼¥ì¥Ù¥ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¸¡ºº¤¹¤ë¡£

  5. ¥Ñ¥Ã¥±¡¼¥¸¤Îʸ¾ÏÃæ¤ÎÎ㤬¼Â¹Ô¤µ¤ì¤ë(¼Â¹Ô²Äǽ¤Ê¼ÂÎ㥳¡¼¥É¤Ë´Ø¤¹¤ë¾ðÊó¤Ï \examplessee section 2. R ¤Î¥É¥­¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯¤ò¤ß¤è)¡£

    ÌÞÏÀ¡¢¸ø³«¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ï¾¯¤¯¤È¤â¤½¤ì¼«¿È¤ÎÎã¤ò¼Â¹Ô¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  6. ¤â¤·¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼¥¹¤¬ `tests' ¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤á¤Ð¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥êÃæ¤Ç »Ø¼¨¤µ¤ì¤¿¸¡ºº¤¬¼Â¹Ô¤µ¤ì¤ë¡£ (ŵ·¿Åª¤Ë¤Ï¤½¤ì¤é¤Ï `.R' ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÈÌÜɸ½ÐÎÏ¥Õ¥¡¥¤¥ë `.Rout.save'. ¤Î½¸¤Þ¤ê¤«¤é¤Ê¤ë¡£)

  7. ¤â¤·¼Â¹Ô²Äǽ¤Ê latex ¥×¥í¥°¥é¥à¤¬ÍøÍѤǤ­¤ì¤Ð¡¢¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Ë¥å¥¢¥ë¤Î `.dvi' ÈǤ¬ ºî¤é¤ì¤ë(Rd ¥Õ¥¡¥¤¥ë¤¬¤¦¤Þ¤¯ÊÑ´¹¤Ç¤­¤ë¤«¤É¤¦¤«¸¡ºº¤¹¤ë¤¿¤á)¡£

R ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ººË¡¤Ë´Ø¤¹¤ë¤è¤ê¿¤¯¤Î¾ðÊó¤òÆÀ¤ë¤Ë¤Ï R CMD check --help (Windows ¾å¤Ç¤Ï Rcmd check --help) ¤ò»È¤ª¤¦¡£ ¥Õ¥é¥°¤ò²Ã¤¨¤ë¤³¤È¤Ë¤è¤ê¡¢¸¡ºº¤Î°ìÉôʬ¤À¤±¤ò¼Â¹Ô¤Ç¤­¤ë¡£

R ¥Ñ¥Ã¥±¡¼¥¸¤ÎºîÀ®Ì¿Îá¤Ç¤¢¤ë R CMD build ¤ò»È¤Ã¤Æ¡¢ (Î㤨¤Ð, °ú¤­Â³¤¯¥ê¥ê¡¼¥¹ÍѤË) R ¥Ñ¥Ã¥±¡¼¥¸¤ò ¤½¤Î¥½¡¼¥¹¤«¤éºî¤ë¤³¤È¤¬½ÐÍè¤ë¡£ Windows ¤Ë¤ª¤±¤ë Âбþʪ¤Ï Rcmd build ¤Ç¤¢¤ë¡£

¥Ñ¥Ã¥±¡¼¥¸¤òÄ̾ï¤Î gzip ¤µ¤ì¤¿ tar ¥Õ¥¡¥¤¥ë¤È¤·¤Æ¹½À®¤¹¤ë¤ËÀèΩ¤Á¡¢ ÍÍ¡¹¤Ê¿ÇÃÇ¥Á¥§¥Ã¥¯¤ÈÀ°ÍýÀ°ÆÜ¤¬¼Â»Ü¤µ¤ì¤ë¡£ ÆÃ¤Ë¡¢`DESCRIPTION' ¥Õ¥¡¥¤¥ë¤¬É¬ÍפʹàÌܤò´Þ¤ó¤Ç¤¤¤ë¤«¡¢¥ª¥Ö¥¸¥§¥¯¥È¤È¥Ç¡¼¥¿¤Î ÌÜÏ¿¤¬Â¸ºß¤·(¤µ¤â¤Ê¤±¤ì¤Ð¤½¤ì¤é¤òºî¤ê½Ð¤¹)ºÇ¿·¤Î¤â¤Î¤È²¾Äꤷ¤ÆÎɤ¤¤«¤É¤¦¤«¤¬¸¡ºº¤µ¤ì¤ë¡£

¹½ÃÛ¥×¥í¥»¥¹¤ËÀèΩ¤Á¡¢¥Ñ¥Ã¥±¡¼¥¸¤¬Àµ¾ï¤Ëư¤¯¤«¤É¤¦¤«¤Î¼Â¹Ô»þ¸¡ºº¤ò R CMD check ¤ò»È¤Ã¤Æ ¹Ô¤¦¤Ù¤­¤Ç¤¢¤ë¡£

R ¤Î¥Ñ¥Ã¥±¡¼¥¸ºîÀ®Ì¿Îá¤Ë´Ø¤¹¤ë¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï R CMD build --help (Windows ¤Ç¤Ï Rcmd build --help) ¤ÇÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£

R CMD build ¤Ï¥Ð¥¤¥Ê¥ê¡¼ÇÛÉÛÍѤ˴û¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤ÎÈǤòºî¤ë ¤³¤È¤â½ÐÍè¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 CRAN ¤Ø¤ÎÅê¹Æ

CRAN ¤Ï R ¤ÎÇÛÉÛʪ¤È¹×¸¥¥³¡¼¥É¡¢ÆÃ¤Ë R ¥Ñ¥Ã¥±¡¼¥¸¡¢¤ò ¤ª¤¤¤Æ¤¢¤ë WWW ¥µ¥¤¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¤¢¤ë¡£R ¤Î¥æ¡¼¥¶¡¼¤Ï¶¦Æ±¥×¥í¥¸¥§¥¯¥È¤Ë »²²Ã¤·¡¢¼«Ê¬¼«¿È¤Ç¹×¸¥¤·¤ÆÍߤ·¤¤¡£

¥Ñ¥Ã¥±¡¼¥¸ mypkg ¤òÅê¹Æ¤¹¤ëÁ°¤Ë¡¢¤½¤ì¤¬´°Á´¤ÇŬÀµ¤Ë°Ü¿¢½ÐÍè¤ë¤«¤É¤¦¤«¸¡ºº¤¹¤ë¤¿¤á¤Ë ¼¡¤Î¥¹¥Æ¥Ã¥×¤ò¼Â¹Ô¤·¤ÆÍߤ·¤¤¡£

  1. R CMD check ¤ò»È¤Ã¤Æ¥Ñ¥Ã¥±¡¼¥¸ ¤¬°Ü¿¢¤Ç¤­¡¢¤½¤Î¼ÂÎã¤ò¼Â¹Ô½ÐÍè¤ë¤«¤É¤¦¤«¡¢¥É¥­¥å¥á¥ó¥È¤¬ ´°Á´¤Ç½èÍý²Äǽ¤«¤É¤¦¤«¡¢¤ò¸¡ºº¤¹¤ë¡£

  2. R CMD build ¤ò»È¤Ã¤Æ´ö¤Ä¤«¤Î¹¹¤Ê¤ë¸¡ºº¤ò¼Â¹Ô¤·¡¢¥ê¥ê¡¼¥¹ÍѤΠ`.tar.gz' ¥Õ¥¡¥¤¥ë ¤ò¹½ÃÛ¤¹¤ë¡£

Á´¤Æ¤Î²áÄø¤¬¡¢Íý²ò²Äǽ¤Ç̵¤¯¤¹É¬Íפ¬Ìµ¤¤¤è¤¦¤Ê·Ù¹ð¤ò½Ð¤¹¤À¤±¤Ç½èÍý¤Ç¤­¤ë¤³¤È¤ò ³Îǧ¤·¤ÆÍߤ·¤¤¡£

Á´¤Æ¤Î¸¡ºº¤¬½ªÎ»¤·¤¿¤é¡¢`.tar.gz' ¤ò

 
ftp://ftp.ci.tuwien.ac.at/incoming

¤Ø¥¢¥Ã¥×¥í¡¼¥É¤·¡¢¤½¤ì¤Ë´Ø¤¹¤ëÊó¹ð¤ò WWWadmin@ci.tuwien.ac.at ¤Ë¤ª¤¯¤Ã¤ÆÍߤ·¤¤¡£ CRAN ¤Î´ÉÍý¼Ô¤ÏÅê¹Æ¤ò¼ç¥¢¡¼¥«¥¤¥Ö¤Ë¤ª¤¯Á°¤Ë¡¢¤³¤ì¤é¤Î¸¡ºº¤ò¼Â¹Ô¤¹¤ë¤Ç¤¢¤í¤¦¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. R ¤Î¥É¥­¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯

2.1 Rd ½ñ¼°  
2.2 Àá¶èʬ  
2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È  
2.4 ¥ê¥¹¥È¤Èɽ  
2.5 Áê¸ß»²¾È  
2.6 ¿ô¼°  
2.7 ÁÞÆþ  
2.8 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îʸ¾Ï  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 Rd ½ñ¼°

R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï (La)TeX ¤ËÎɤ¯»÷¤¿´Êñ¤Ê¥Þ¡¼¥¯¥¢¥Ã¥×¸À¸ì¤Ç¤¢¤ë "R documentation" (Rd) ½ñ¼°¤Ç½ñ¤«¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥É¥­¥å¥á¥ó¥È²½¤µ¤ì¤Æ¤¤¤ë¡£ ¤³¤ì¤Ï LaTeX, HTML ¤½¤·¤ÆÊ¿Ê¸¤ò´Þ¤àÍÍ¡¹¤Ê½ñ¼°¤ËÊÑ´¹¤Ç¤­¤ë¡£ ËÝÌõ¤Ï `$R_HOME/bin' Ãæ¤Ë¤¢¤ë Perl ¥¹¥¯¥ê¥×¥È Rdconv ¤È¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ëÍÑ¥¹¥¯¥ê¥×¥È¤Ë¤è¤ê ¼Â¹Ô¤µ¤ì¤ë¡£

R ¤ÎÇÛÉÛ¤Ï700¤ò±Û¤¨¤ë¤½¤¦¤·¤¿¥Õ¥¡¥¤¥ë¤ò»ý¤Á¡¢R ¤Î¥½¡¼¥¹¥Ä¥ê¡¼¤Î `src/library/pkg/man' ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¡£ ¤³¤³¤Ç pkg ¤ÏÁ´¤Æ¤Îɸ½àŪ¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸ base ¤ä¡¢ R ¤ÎÇÛÉÛʪ¤Ë´Þ¤Þ¤ì¤ë eda ¤ä mva ¤È¤¤¤Ã¤¿É¸½à¥Ñ¥Ã¥±¡¼¥¸¤òɽ¤¹¡£

Îã¤È¤·¤Æ R ¤Î´Ø¿ô rle ¤òÀâÌÀ¤¹¤ë¥Õ¥¡¥¤¥ë `src/library/base/man/rle.Rd' ¤òį¤á¤Æ¤ß¤è¤¦¡£

 
\name{rle}
\alias{rle}
\title{Run Length Encoding}
\description{
  Compute the lengths and values of runs of equal values in
  a vector.
}
\usage{
rle(x)
}
\arguments{
  \item{x}{a (numerical, logical or character) vector.}
}
\value{
  A list with components
  \item{lengths}{a vector containing the length of each run.}
  \item{values}{a vector of the same length as \code{lengths}
    with the corresponding values.}
}
\examples{
x <- rev(rep(6:10, 1:5))
rle(x)
## $lengths
## [1] 5 4 3 2 1
## $values
## [1] 10  9  8  7  6
z <- c(TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE)
rle(z)
rle(as.character(z))
}
\keyword{manip}

°ì¤Ä¤Î Rd ¥Õ¥¡¥¤¥ë¤Ï»°¤Ä¤ÎÉôʬ¤«¤é¤Ê¤ë¡£¥Ø¥Ã¥À¡¼¤Ï¥Õ¥¡¥¤¥ë¤Î̾Á°¡¢ÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÏÃÂê¡¢ ɽÂê¡¢ÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ëû¤¤Ê¸¾Ï¤Ë¤è¤ëµ­½Ò¤È R ¤Î»ÈÍÑË¡¾ðÊó¤Ë´Ø¤¹¤ë ´ðËÜŪ¤Ê¾ðÊó¤òÍ¿¤¨¤ë¡£ËÜÂΤϤ½¤ì°Ê¾å¤Î¾ðÊó(Î㤨¤Ð¡¢¾å¤ÎÎã¤Ë¤ª¤±¤ë¤è¤¦¤Ë´Ø¿ô¤Î°ú¿ô¤äÊÖ¤êÃÍ) ¤òÍ¿¤¨¤ë¡£ºÇ¸å¤Ë¡¢¥­¡¼¥ï¡¼¥É¾ðÊó¤òÍ¿¤¨¤ë¥Õ¥Ã¥¿¡¼¤¬¤¢¤ë¡£¥Ø¥Ã¥À¡¼¤È¥Õ¥Ã¥¿¡¼¤ÏÉԲķç¤Ç¤¢¤ë¡£

¥Ñ¥Ã¥±¡¼¥¸ºî¼Ô¤ËÍ­ÍѤǤ¢¤ë Rd ½ñ¼°¤Ç¥É¥­¥å¥á¥ó¥È¤ò½ñ¤¯¥¬¥¤¥É¥é¥¤¥ó¤Ë¤Ä¤¤¤Æ¤Ï "Guidelines for Rd files" ¤ò¸«¤è¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô

R ¥ª¥Ö¥¸¥§¥¯¥È(ÆÃ¤Ë´Ø¿ô)¤Î¥É¥­¥å¥á¥ó¥È¤Ë»È¤ï¤ì¤ë´ðËÜŪ ¥Þ¡¼¥¯¥¢¥Ã¥×Ì¿Î᤬¤³¤ÎÉûÀá¤ÇÍ¿¤¨¤é¤ì¤ë¡£

\name{file}
file ¤Ï¥Õ¥¡¥¤¥ë¤Î´ðËÜ̾¤Ç¤¢¤ë¡£

\alias{topic}
¹àÌÜ \alias ¤Ï¥Õ¥¡¥¤¥ë¤¬ÀâÌÀ¤¹¤ëÁ´¤Æ¤Î "ÏÃÂê" ¤ò»ØÄꤹ¤ë¡£ ¤³¤Î¾ðÊó(¥Õ¥¡¥¤¥ë̾¤È¤È¤â¤Ë)¤Ï¥ª¥ó¥é¥¤¥ó(ʿʸ¤äHTML)¤Î¥Ø¥ë¥×¥·¥¹¥Æ¥à¤Ë¤è¤ë ¸¡º÷ÍѤκ÷°ú¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë½¸¤á¤é¤ì¤ë¡£

Ê£¿ô¤Î \alias ¹àÌܤ¬¤¢¤Ã¤Æ¤âÎɤ¤¡£¤·¤Ð¤·¤ÐÊ£¿ô¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ò°ì¤Ä¤Î ¥Õ¥¡¥¤¥ë¤ÇÀâÌÀ¤¹¤ë¤Î¤¬ÊØÍø¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ë `Normal.Rd' ¤ÏÀµµ¬Ê¬ÉÛ¤ÎÌ©ÅÙ¡¢Ê¬ÉÛ´Ø¿ô¡¢ ¥¯¥©¥ó¥¿¥¤¥ë´Ø¿ô¤½¤·¤ÆÍð¿ô¤ÎÀ¸À®¤òÀâÌÀ¤·¤Æ¤ª¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë»Ï¤Þ¤ë

 
\name{Normal}
\alias{dnorm}
\alias{pnorm}
\alias{qnorm}
\alias{rnorm}

¥Õ¥¡¥¤¥ë̾¤Ïʸ¾Ï²½¤µ¤ì¤¿ÏÃÂê¤Ç¤¢¤ëɬÍפϤʤ¤¤³¤È¤òÃí°Õ¤·¤è¤¦¡£

\title{Title}
Rd ¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥¿¥¤¥È¥ë¾ðÊ󡣤³¤ì¤ÏÂçʸ»ú¤Ç»Ï¤Þ¤ê¡¢ºÇ¸å¤Ë¥Ô¥ê¥ª¥Ã¥É¤ò¤ª¤«¤º¡¢ Ç¡²¿¤Ê¤ë¥Þ¡¼¥¯¥¢¥Ã¥×Ì¿Îá¤â»È¤ï¤Ê¤¤(¥Ï¥¤¥Ñ¡¼¥Æ¥­¥¹¥È¸¡º÷¤ËÌäÂê¤òµ¯¤³¤¹)¡£

\description{...}
´Ø¿ô¤¬²¿¤ò¤¹¤ë¤Î¤«¤Ë´Ø¤¹¤ëû¤¤µ­½Ò(°ìÃÊÍî¡¢¿ô¹Ô¤ÇÎɤ¤)¡£ (¤â¤·µ­½Ò¤¬ "Ť¹¤®" ¤½¤·¤ÆÍưפËû¤¯¤Ç¤­¤Ê¤¤¤Ê¤é¤Ð¡¢ ¶²¤é¤¯¥Õ¥¡¥¤¥ë¤Ï¿¤¯¤Î¤³¤È¤ò°ìÅÙ¤ËÀâÌÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤À¤í¤¦¡£)

\usage{fun(arg1, arg2, ...)}
¥Õ¥¡¥¤¥ëÃæ¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ÈÊÑ¿ô¤ÎÍÑË¡¤ò°ì¹Ô¤â¤·¤¯¤Ï¿ô¹Ô¤Ç¼¨¤¹¡£ ¤³¤ì¤é¤Ï¥¿¥¤¥×¥é¥¤¥¿¡¼¥Õ¥©¥ó¥È¤òÍѤ¤¤¿ verbatim ¥â¡¼¥É¤Çɽ¼¨¤µ¤ì¤ë¡£

ÀâÌÀ¤µ¤ì¤ë»ÈÍѾðÊó¤Ï°ìÈ̤Ë(¥³¡¼¥É¤Èʸ¾Ï´Ö¤Î°ì´ÓÀ­¤Î¼«Æ°¸¡ºº¤¬²Äǽ¤Ë¤Ê¤ë¤è¤¦¤Ë) ´Ø¿ô¤ÎÄêµÁ¤È Àµ³Î¤Ë °ìÃפ¹¤ëɬÍפ¬¤¢¤ë ¤µ¤â¤Ê¤±¤ì¤Ð¼ÂºÝ¤ÎÍÑË¡¤ò¼¨¤¹ \synopsis Àá¤ò´Þ¤á¤è¤¦¡£

Î㤨¤Ð abline ¤Ï¥×¥í¥Ã¥È¤ËľÀþ¤ò²Ã¤¨¤ë´Ø¿ô¤Ç¡¢ ̾Á°¤Ä¤­°ú¿ô¤Ë±þ¤¸¤Æ¿§¡¹¤Ë»È¤¨¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ `abline.Rd' ¤Ï¼¡¤ÎÆâÍÆ¤ò´Þ¤à

 
\synopsis{
abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL,
       coef = NULL, untf = FALSE, col = par("col"),
       lty = par("lty"), lwd = NULL, ...)
}
\usage{
abline(a, b, \dots)
abline(h=, \dots)
abline(v=, \dots)
...
}

\arguments{...}
´Ø¿ô¤Î°ú¿ô¤Îµ­½Ò¤Ç¡¢¼¡¤Î¤è¤¦¤Ê·Á¼°

 
\item{arg_i}{Description of arg_i.}

¤Î¹àÌܤò°ú¿ô¥ê¥¹¥È¤Î³ÆÍ×ÁǤËÂФ·»È¤¦¡£¹àÌܤÎÁ°¸å¤Ë¥ª¥×¥·¥ç¥ó¤Ç¥Æ¥­¥¹¥È¤ò¤ª¤¤¤Æ¤âÎɤ¤¡£

\details{...}
Ä󶡤µ¤ì¤ëµ¡Ç½¤Î¾ÜºÙ¤Ê¡¢²Äǽ¤Ê¤éÀµ³Î¤Ê¡¢µ­½Ò¤Ç¡¢\description ¹àÌÜÃæ¤Î´ðËܾðÊó¤ò³ÈÄ¥¤¹¤ë¡¢

\value{...}
´Ø¿ô¤ÎÊÖ¤êÃͤε­½Ò¡£

¤â¤·Ê£¿ô¤ÎÊÖ¤êÃͤò´Þ¤à¥ê¥¹¥È¤¬ÊÖ¤µ¤ì¤ë¤Ê¤é¤Ð¡¢¼¡¤Î·Á¼°

 
\item{comp_i}{Description of comp_i.}

¤Î¹àÌܤòÊÖ¤µ¤ì¤ë¥ê¥¹¥È¤Î³Æ¹àÌܤ˲䨤ƤâÎɤ¤¡£ ¥ª¥×¥·¥ç¥ó¤Î¥Æ¥­¥¹¥È¤¬Á°¤ËÉÕ¤¤¤Æ¤âÎɤ¤(¾Ò²ðÎã rle ¤ò¸«¤è)¡£

\references{...}
ʸ¸¥¤Ø¤Î»²¾È¤ÎÀá¡£¥¦¥§¥Ã¥Ö¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤ËÂФ·¤Æ¤Ï \url{} ¤ò»È¤¦¡£

\note{...}
ɬÍ×¤ÊÆÃÊ̤ÊÃí°Õ¤Ë¤Ï¤³¤ì¤ò»È¤¦¡£

Î㤨¤Ð `piechart.Rd' ¤Ï°Ê²¼¤ò´Þ¤à

 
\note{
  Pie charts are a very bad way of displaying information.
  The eye is good at judging linear measures and bad at
  judging relative areas.
  ...
}

\author{...}
Rd ¥Õ¥¡¥¤¥ë¤ÎÃø¼Ô¤Ë´Ø¤¹¤ë¾ðÊó¡£ÅŻҥᥤ¥ë¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¤Ë¤Ï;·×¤Ê¶èÀÚ¤êʸ»ú(`( )' ¤â¤·¤¯¤Ï `< >') ̵¤·¤Î \email{} ¤ò»È¤¦¡£¥¦¥§¥Ã¥Ö¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï \url{} ¤ò»È¤¦¡£

\seealso{...}
´ØÏ¢ R ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ç¡¢¤½¤ì¤é¤ò»²¾È¤¹¤ë¤Ë¤Ï \code{\link{...}} ¤ò»È¤¦ (\code ¤Ï R ¥ª¥Ö¥¸¥§¥¯¥È̾¤ËÂФ¹¤ëÀµ¤·¤¤¥Þ¡¼¥¯¥¢¥Ã¥×¤Ç¤¢¤ê¡¢ \link ¤Ï¤³¤ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë½ÐÎϽñ¼°¤Ë¤è¤ë¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤òÀ¸À®¤¹¤ë¡£ See section 2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È ¤È 2.5 Áê¸ß»²¾È)¡£

\examples{...}
´Ø¿ô¤Î»ÈÍÑË¡¤ÎÎã¡£¤³¤ì¤é¤Ï¥¿¥¤¥×¥é¥¤¥¿¡¼¥Õ¥©¥ó¥È¤òÍѤ¤¤¿ verbatim ¥â¡¼¥É¤Çɽ¼¨¤µ¤ì¤ë¡£

¼ÂÎã¤Ï¥É¥­¥å¥á¥ó¥È¤ÎÌÜŪ¤ËÍ­ÍѤǤ¢¤ë¤À¤±¤Ç¤Ê¤¯¡¢R ¤Î¿ÇÃÇŪ¥Á¥§¥Ã¥¯¤È¤·¤Æ»È¤ï¤ì¤ë¸¡ºº¥³¡¼¥É¤ò Ä󶡤¹¤ë¡£´ûÄê¤Ç¤Ï¡¢\examples{} Ãæ¤Î¥Æ¥­¥¹¥È¤Ï¥Ø¥ë¥×ÊǤνÐÎϤËɽ¼¨¤µ¤ì¡¢ make check ¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë¡£É½¼¨¤µ¤ì¤ë¤À¤±¤Ç¼Â¹Ô¤µ¤ì¤Ê¤¤Ì¿Îá¤ËÂФ·¤Æ¤Ï \dontrun{} ¤ò»È¤¦¤³¤È¤¬½ÐÍè¡¢¥æ¡¼¥¶¡¼¤Ë¤Ï¼¨¤µ¤ì¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤ R ¤Î¸¡ººÍѤÎÄɲÃÌ¿Îá¤Ë¤Ï \testonly{} ¤òÍѤ¤¤ë¡£

Î㤨¤Ð

 
x <- runif(10)       # Shown and run.
\dontrun{plot(x)}    # Only shown.
\testonly{log(x)}    # Only run.

¤³¤Î¤è¤¦¤Ë¡¢\dontrun Ãæ¤Ë´Þ¤Þ¤ì¤ë°Ê³°¤Î¼ÂÎ㥳¡¼¥É¤Ï¼Â¹Ô¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ²Ã¤¨¤Æ¡¢¥·¥¹¥Æ¥à°Í¸¤ÎÆÃħ¤äÆÃ¼ì¤Êµ¡Ç½(Î㤨¤Ð¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ø¤Î¥¢¥¯¥»¥¹¤äÆÃÄê¤Î ¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¤­¹þ¤ßµö²Ä)¤ò»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£

¼ÂÎã¤ò¼Â¹Ô²Äǽ¤Ë¤¹¤ë¤¿¤á¤ËɬÍפʥǡ¼¥¿¤ÏÍð¿ô¤Ë¤è¤ê (¤¿¤È¤¨¤Ð x <- rnorm(100))¡¢¤â¤·¤¯¤Ï data()¤ò»È¤Ã¤ÆÆÉ¤ß¹þ¤ß½ÐÍè¤ëɸ½àŪ¤Ê¥Ç¡¼¥¿¥»¥Ã¥È¤è¤êÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë (¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï data() ¤ò¸«¤è)¡£

\keyword{key}
³Æ \keyword ¹àÌܤÏɸ½àŪ¥­¡¼¥ï¡¼¥É¤Î°ì¤Ä (¥Õ¥¡¥¤¥ë `$R_HOME/doc/KEYWORDS' ¤Ë»Ø¼¨¤µ¤ì¤¿¤è¤¦¤Ê)¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¾¯¤¯¤È¤â°ì¤Ä¤Î \keyword ¹àÌܤ¬É¬ÍפǤ¢¤ë¤¬¡¢¤â¤·Ê¸¾Ï²½¤µ¤ì¤ë R ¥ª¥Ö¥¸¥§¥¯¥È¤¬ °ì¤Ä°Ê¾å¤Î¥«¥Æ¥´¥ê¡¼¤ËʬÎव¤ì¤ë¤Ê¤é¤Ð°ì¤Ä°Ê¾å¤Ç¤âÎɤ¤¡£

R ´Ø¿ô prompt ¤Ï R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤ò¼ê½õ¤±¤¹¤ë¡£ ¤â¤· foo ¤¬ R ¤Î´Ø¿ô¤Ê¤é¤Ð¡¢prompt(foo) ¤Ï´û¤Ë foo ¤ÎŬÀµ¤Ê´Ø¿ô¡¦°ú¿ô̾ ¤ò»ý¤Á¡¢¾ðÊó¤ÇËä¤á¤ë¤³¤È¤Î½ÐÍè¤ë¹½Â¤¤ò»ý¤Ã¤¿¥Õ¥¡¥¤¥ë `prompt.Rd' ¤òºîÀ®¤¹¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.2 ¥Ç¡¼¥¿¥»¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È²½

R ¤Î¥Ç¡¼¥¿¥»¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤¢¤ë Rd ¥Õ¥¡¥¤¥ë¤Ï¾¯¡¹°Û¤Ê¤ë¡£ \arguments ¤ä \value ¤È¤¤¤Ã¤¿À᤬ÉÔÍפʰìÊý¡¢ ¥Ç¡¼¥¿¤Î½Ðŵ¤È½ñ¼°¤¬ÀâÌÀ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

Î㤨¤Ð¡¢É¸½àŪ¤Ê R ¤Î¥Ç¡¼¥¿¥»¥Ã¥È rivers ¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤¢¤ë `src/library/base/man/rivers.Rd' ¤òį¤á¤Æ¤ß¤è¤¦¡£

 
\name{rivers}
\alias{rivers}
\title{Lengths of Major North American Rivers}
\description{
  This data set gives the lengths (in miles) of 141 ``major''
  rivers in North America, as compiled by the US Geological
  Survey.
}
\usage{data(rivers)}
\format{A vector containing 141 observations.}
\source{World Almanac and Book of Facts, 1975, page 406.}
\references{
  McNeil, D. R. (1977) \emph{Interactive Data Analysis}.
  New York: Wiley.
}
\keyword{datasets}

¤³¤ì¤Ï°Ê²¼¤ÎÊä½õŪ¤Ê¥Þ¡¼¥¯¥¢¥Ã¥×Ì¿Îá¤ò»È¤¦¡£

\format{...}
¥Ç¡¼¥¿¥»¥Ã¥È¤Î½ñ¼°¤Îµ­½Ò(¥Ù¥¯¥È¥ë¡¢¹ÔÎ󡢥ǡ¼¥¿¥Õ¥ì¡¼¥à¡¢»þ·ÏÎóÅù)¡£ ¹ÔÎó¤È¥Ç¡¼¥¿¥Õ¥ì¡¼¥à¤ËÂФ·¤Æ¤Ï¡¢¤³¤ì¤Ï³ÆÎó¤ÎÀâÌÀ¤òÍ¿¤¨¤ë¤Ù¤­¤Ç¤¢¤ê¡¢ ¤Ç¤­¤ì¤Ð¥ê¥¹¥È¤«É½¤Î·Á¤¬Ë¾¤Þ¤·¤¤¡£ ¤è¤ê¾Ü¤·¤¯¤Ï See section 2.4 ¥ê¥¹¥È¤Èɽ ¤ò¸«¤è¡£

\source{...}
¸¶½Ðŵ¤Î¾ÜºÙ(»²¹Íʸ¸¥¤â¤·¤¯¤Ï URL)¡£¹¹¤Ë¡¢ Àá \references ¤ÏÆó¼¡Åª½Ðŵ¤ÈÍÑË¡¤òÍ¿¤¨¤ë¤³¤È¤¬½ÐÍè¤ë¡£

¥Ç¡¼¥¿¥»¥Ã¥È bar ¤òʸ¾Ï²½¤¹¤ëºÝ¤Ë¤â¤³¤ì¤òÃí°Õ¤»¤è¡£

¤â¤· bar ¤¬¥Ç¡¼¥¿¥Õ¥ì¡¼¥à¤Ê¤é¡¢¤½¤ì¤ò¥Ç¡¼¥¿¥»¥Ã¥È¤È¤·¤ÆÊ¸¾Ï²½¤¹¤ë¤³¤È¤Ï ºÆ¤Ó prompt(bar) ¤Ç»Ï¤á¤ë¤³¤È¤¬½ÐÍè¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.2 Àá¶èʬ

¿·¤·¤¤¥Ñ¥é¥°¥é¥Õ¤ò»Ï¤á¤¿¤ê¡¢ÎãÃæ¤Ë¶õÇò¹Ô¤ò»Ä¤·¤¿¤±¤ì¤Ð¡¢ ñ¤Ë¶õÇò¹Ô¤òÁÞÆþ¤»¤è((La)TeX ¤ÈƱÍͤË)¡£ ¹Ô´¹¤¨¤ò¤¹¤ë¤¿¤á¤Ë¤Ï \cr ¤ò»È¤¦¡£

ͽ¤áÄêµÁ¤µ¤ì¤¿Àá(\description{}, \value{} Åù)°Ê³°¤Ë¡¢Ç¤°Õ¤ÎÀá¤ò \section{section_title}{...} ¤ÇÄêµÁ¤Ç¤­¤ë¡£ Î㤨¤Ð

 
\section{Warning}{You must not call this function unless ...}

´ûÄêµÁºÑ¤ßÀá¤È¤Î°ì´ÓÀ­¤Î¤¿¤á¤Ë¡¢Àá̾(\section ¤Ø¤ÎÂè°ì°ú¿ô)¤ÏÂçʸ»ú²½(¤·¤«¤·Á´¤ÆÂçʸ»ú¤Ë¤·¤Ê¤¤)¤¹¤ë¡£

ÄɲäÎ̾Á°ÉÕ¤­¤ÎÀá¡¢¤½¤ì¤¬ÆþÎϤΤɤ³¤Ë¤¢¤í¤¦¤È¡¢¾ï¤Ë½ÐÎϤΰìÄê¤Î°ÌÃÖ(\note, \seealso ¤½¤·¤Æ¼ÂÎã¤ÎÁ°)¤Ë ÁÞÆþ¤µ¤ì¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È

°Ê²¼¤ÎÏÀÍýŪ¥Þ¡¼¥¯¥¢¥Ã¥×Ì¿Îá¤ÏÆÃÊ̤ʼïÎà¤Î¥Æ¥­¥¹¥È¤ò»Ø¼¨¤¹¤ë¤¿¤á¤ËÍøÍѤǤ­¤ë¡£

\bold{word} ¤â¤·²Äǽ¤Ê¤é word ¤ò bold ¥Õ¥©¥ó¥È¤Ë¤¹¤ë
\emph{word} ¤â¤·²Äǽ¤Ê¤é word ¤ò italic ¥Õ¥©¥ó¥È¤Ç¶¯Ä´¤¹¤ë
\code{word} ¥³¡¼¥É¤ÎÃÇÊÒ¤ò¡¢¤â¤·²Äǽ¤Ê¤é typewriter ¥Õ¥©¥ó¥È¤Ë¤¹¤ë
\file{word} ¥Õ¥¡¥¤¥ë̾ÍÑ
\email{word} ÅŻҥᥤ¥ëÍÑ
\url{word} URL ÍÑ

ºÇ½é¤ÎÆó¤Ä¡¢\bold ¤È \emph ¤Ïʿʸ¤Ç¶¯Ä´¤Î¤¿¤á¤Ë»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£

R ¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤ò´Þ¤à¡¢R ¥³¡¼¥É¤ÎÃÇÊÒ¤Ï \code ¤ò»È¤Ã¤Æ¥Þ¡¼¥¯¥¢¥Ã¥×¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ \code Ãæ¤Ç¤Ï¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤È¥Ñ¡¼¥»¥ó¥Èµ­¹æ¤À¤±¤¬(¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥åµ­¹æ¤òÍѤ¤)¥¨¥¹¥±¡¼¥×¤µ¤ì¤ë ɬÍפ¬¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.4 ¥ê¥¹¥È¤Èɽ

\itemize ¤È \enumerate Ì¿Îá¤Ï°ì¤Ä¤Î°ú¿ô¤ò¼è¤ê¡¢ ¤½¤ÎÃæ¤Ç¤Ï°ì¤Ä¤â¤·¤¯¤ÏÊ£¿ô¤Î \item Ì¿Î᤬¤¢¤Ã¤ÆÎɤ¤¡£ ³Æ \item ¤Ë³¤¯¥Æ¥­¥¹¥È¤Ï°ì¤Ä¤â¤·¤¯¤ÏÊ£¿ô¤Î¥Ñ¥é¥°¥é¥Õ¤È¤·¤Æ À°·Á¤µ¤ì¡¢Å¬Àڤ˥¤¥ó¥Ç¥ó¥È¤µ¤ì¡¢ºÇ½é¤Î¥Ñ¥é¥°¥é¥Õ¤Ï bullet µ­¹æ (\itemize) ¤â¤·¤¯¤ÏÈÖ¹æ (\enumerate)¤Ç¥Þ¡¼¥¯¤µ¤ì¤ë¡£

\itemize ¤È \enumerate Ì¿Îá¤ÏÆþ¤ì»Ò¤Ë¤Ê¤Ã¤Æ¤âÎɤ¤¡£

\describe Ì¿Îá¤Ï \itemize ¤Ë»÷¤ë¤¬¡¢ºÇ½é¤Î¥é¥Ù¥ë¤ò»ØÄê¤Ç¤­¤ë¡£ \item ¤ÏÆó¤Ä¤Î°ú¿ô¡¢¥é¥Ù¥ë¤È¹àÌÜËÜÂΡ¢¤ò \item ¤Î°ú¿ô¤ÈÃÍ¤È Á´¤¯Æ±¤¸Íͤ˼è¤ë¡¢ \describe Ì¿Îá¤Ï HTML ¤Î <DL> ¥ê¥¹¥È¤ä LaTeX ¤Î \description ¥ê¥¹¥È¤Ë Âбþ¤µ¤ì¤ë¡£

\tabular Ì¿Îá¤ÏÆó¤Ä¤Î°ú¿ô¤ò¼è¤ë¡£ºÇ½é¤Ï³ÆÎó¤ËÂФ·¤Æ ɬÍפÊÀ°ÎóË¡(º¸Â·¤¨¤Ë¤Ï `l'¡¢±¦Â·¤¨¤Ë¤Ï `r'¡¢Ëô¤ÏÃæ±û²½¤Ë¤Ï `c') ¤òÍ¿¤¨¤ë¡£Æó¤ÄÌܤΰú¿ô¤Ï \cr ¤ÇʬΥ¤µ¤ì¤¿Ç¤°Õ¸Ä¿ô¤Î¹Ô¤«¤é¤Ê¤ê¡¢ ³ÆÍó¤Ï \tab ¤ÇʬΥ¤µ¤ì¤ë¡£ Î㤨¤Ð:

 
  \tabular{rlll}{
    [,1] \tab Ozone   \tab numeric \tab Ozone (ppb)\cr
    [,2] \tab Solar.R \tab numeric \tab Solar R (lang)\cr
    [,3] \tab Wind    \tab numeric \tab Wind (mph)\cr
    [,4] \tab Temp    \tab numeric \tab Temperature (degrees F)\cr
    [,5] \tab Month   \tab numeric \tab Month (1--12)\cr
    [,6] \tab Day     \tab numeric \tab Day of month (1--31)
  }

Âè°ì°ú¿ôÃæ¤ÎÀ°Î󻨼¨¤ÈƱ¤¸¸Ä¿ô¤ÎÍ󤬳ƹԤ˸ºß¤¹¤ëɬÍפ¬¤¢¤ê¡¢ ¶õÇò¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤(¤·¤«¤·¡¢¶õÇòʸ»ú¤À¤±¤Ç¤¢¤Ã¤Æ¤âÎɤ¤)¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5 Áê¸ß»²¾È

¥Þ¡¼¥¯¥¢¥Ã¥× \link{foo} (ÉáÄÌ \code{\link{foo}} ¤ÈÁȤ߹ç¤ï¤»¤Æ »È¤¦)¤Ï¥ª¥Ö¥¸¥§¥¯¥È foo ¤Î¥Ø¥ë¥×ÊǤؤΥϥ¤¥Ñ¡¼¥ê¥ó¥¯¤òºî¤ê½Ð¤¹¡£ \link ¤Î°ì¤Ä¤Î¼ç¤ÊÍøÍѤϥإë¥×ÊǤΠ\seealso Àá¤Ç¤¢¤ë¡¢see section 2.1 Rd ½ñ¼°¡£ (¤³¤ì¤Ï¡¢¤¿¤È¤¨¤Ð help.start() ¤¬ÍøÍѤ¹¤ë HTML ÊǤ仲¹Í¥Þ¥Ë¥å¥¢¥ë¤Î PDF ÈÇÃæ¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ÎÀ¸À®¤À¤±¤Ë±Æ¶Á¤¹¤ë¡£)

¤½¤ì¤¾¤ìÏÃÂê(¥Õ¥¡¥¤¥ë?) foo ¤È bar ¤Ø¤Î¥ê¥ó¥¯ \link[pkg]{foo} ¤È \link[pkg:bar]{foo} ¤È¤·¤Æ »ØÄꤵ¤ì¤ë¥ª¥×¥·¥ç¥ó¤Î°ú¿ô¤¬¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.6 ¿ô¼°

¿ô³Ø¼°¤Ïɽ¼¨¥É¥­¥å¥á¥ó¥È¤Ç¤ÏÈþ¤·¤¯À°·Á¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¥Æ¥­¥¹¥È¤ä HTML ·Á¼°¤Î¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥× ¤ËÂФ·¤Æ¤Ï¤Þ¤ÀŬÀڤʤâ¤Î¤¬¤Ê¤¤¡£ ¤³¤ÎÌÜŪ¤Î¤¿¤á¡¢Æó¤Ä¤ÎÌ¿Îá \eqn{latex}{ascii} ¤È \deqn{latex}{ascii} ¤¬»È¤ï¤ì¤ë¡£¤³¤³¤Ç \eqn ¤Ï"¹ÔÃæ"¿ô¼°(TeX ¤Î $...$)¡¢\deqn ¤Ï"¿ô¼°¹Ô" (LaTeX ¤Î displaymath ´Ä¶­¡¢¤â¤·¤¯¤Ï TeX ¤Î $$...$$) ¤Ë»È¤ï¤ì¤ë¡£

Æó¤Ä¤ÎÌ¿Îá¤Ï¤Þ¤¿ latex ¤È ascii ¤ÎÁÐÊý¤Ç»È¤¨¤ë \eqn{latexascii} (°ú¿ô°ì¤Ä¤À¤±)¤Î·Á¼°¤Ç¤â»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£

¼¡¤ÎÎã¤Ï Poisson ¤Î¥Ø¥ë¥×ÊǤ«¤é¼è¤Ã¤¿¡£

 
  \deqn{p(x) = \frac{\lambda^x e^{-\lambda}}{x!}}{%
        p(x) = lambda^x exp(-lambda)/x!}
  for \eqn{x = 0, 1, 2, \ldots}.

HTML ¤È¥Æ¥­¥¹¥ÈÈÇ¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥×¤Ç¤Ï¼¡¤ÎÍͤˤʤë

 
    p(x) = lambda^x exp(-lambda)/x!

for x = 0, 1, 2, ....


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7 ÁÞÆþ

R ¥·¥¹¥Æ¥à¤½¤ì¼«¿È¤Ë¤Ï \R ¤ò»È¤¦(;ʬ¤Î `{}' ¤ä `\' ¤ÏÉÔÍפǤ¢¤ë)¡£ ´Ø¿ô°ú¿ô¥ê¥¹¥ÈÃæ¤Î `...' ¤Ë¤Ï \dots ¤ò»È¤¦¡£¤½¤·¤Æ¡¢ ÄÌ¾ï¥Æ¥­¥¹¥ÈÃæ¤Î¾Êάµ­¹æ ... ¤Ë¤Ï \ldots ¤ò»È¤¦¡£

`%' ¤Î¸å¤Ë¤Ï¥Ø¥ë¥×¥Æ¥­¥¹¥È¤Ë´Ø¤¹¤ë¥³¥á¥ó¥È¤ò¤ª¤¯¤³¤È¤¬½ÐÍè¤ë¡£ ¹Ô¤Î¤½¤ì°Ê¸å¤ÏÉáÄÌ´°Á´¤Ë̵»ë¤µ¤ì¤ë¤Ç¤¢¤í¤¦¡£ ½¾¤Ã¤Æ¡¢¥Ø¥ë¥×¤Î°ìÉô¤ò´°Á´¤Ë¸«¤¨¤Ê¤¯¤¹¤ë¤³¤È¤Ë¤½¤ì¤ò»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£

¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å(`\')¤Ï¤½¤ì¤òÊ̤ΥХ寥¹¥é¥Ã¥·¥å¤Ç¥¨¥¹¥±¡¼¥×¤¹¤ë¤³¤È¤Ë¤è¤ê ¤¨¤ë¤³¤È¤¬½ÐÍè¤ë¡£(¹Ô´¹¤¨¤Ë¤Ï \cr ¤¬»È¤¨¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£)

"¥³¥á¥ó¥È" ¤È "À©¸æ" ʸ»ú `%' ¤Èd `\' ¤Ï ¾ï¤Ë ¥¨¥¹¥±¡¼¥×¤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£ verbatim É÷Ì¿Îá(\code ¤È \examples)¤ÎÃæ¤Ç¤Ï¡¢¤½¤Î¾¤Îʸ»ú (1) ¤ÏÆÃÊ̤ǤϤʤ¤¡£\file ¤Ï verbatim É÷Ì¿Îá¤Ç¤Ï¤Ê¤¤¤³¤È¤òÃí°Õ¤·¤è¤¦¡£

"ÉáÄ̤Î" ¥Æ¥­¥¹¥È(verbatim, \eqn, ... ¤Ç¤Ê¤¤)¤Ç¤Ï¡¢¸½ºß¤Î¤È¤³¤í ¤Û¤È¤ó¤É¤Î LaTeX ¤ÎÆÃ¼ìʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤¹¤ëɬÍפ¬¤¢¤ë¡¢Î㤨¤Ð¡¢ `%', `{' ¤½¤·¤Æ `}' ¤ò½ü¤­¡¢»Í¤Ä¤ÎÆÃ¼ìʸ»ú `$', `#' ¤½¤·¤Æ `_' ¤Ï³Æ¡¹ÀèÆ¬¤Ë `\' ¤òÉÕ¤±¤ÆÆÀ¤é¤ì¤ë¡£ (`&' ¤â¥¨¥¹¥±¡¼¥×½ÐÍè¤ë¤¬¡¢É¬ÍפϤʤ¤¡£) ¹¹¤Ë¡¢`^' ¤ò \eqn{\mbox{\textasciicircum}}{^}, ¤½¤·¤Æ `~' ¤ò \eqn{\mbox{\textasciitilde}}{~} ¤â¤·¤¯¤Ï \eqn{\sim}{~} (¤½¤ì¤¾¤ìû¡¦Ä¹¤Î¥Á¥ë¥À)¤ÇÆþÎϤ¹¤ë¡£ Ëô `<', `>' ¤½¤·¤Æ `|' ¤Ï¿ô¼°¥â¡¼¥É¤À¤±¤Ç»È¤¦¤Ù¤­¤Ç¤¢¤ë¡¢¤Ä¤Þ¤ê¡¢ \eqn ¤â¤·¤¯¤Ï \deqn Ãæ¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.8 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îʸ¾Ï

¤·¤Ð¤·¤Ð¥É¥­¥å¥á¥ó¥È¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ëɬÍפ¬¤¢¤ë¡£ ¸½ºß¤Î¤È¤³¤í¡¢»°¤Ä¤Î OS ¸ÇÍ­¤Î¥ª¥×¥·¥ç¥ó¡¢unix, windows ¤½¤·¤Æ mac ¤¬ÍøÍѲÄǽ¤Ç¡¢¥Ø¥ë¥×¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ëÃæ¤Î¹Ô¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æ

 
#ifdef OS
   ...
#endif

¤â¤·¤¯¤Ï

 
#ifndef OS
   ...
#endif

OS ¸ÇÍ­¤ÎÁÞÆþ¤ä½ü³°¤ò»Ø¼¨¤Ç¤­¤ë¡£

¤â¤·¥×¥é¥Ã¥È¥Õ¥©¡¼¥à´Ö¤Î°ã¤¤¤¬¿Ó¤À¤·¤¤¤«¡¢Ê¸¾Ï²½¤µ¤ì¤¿ R ¥ª¥Ö¥¸¥§¥¯¥È¤¬°ì¤Ä¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤À¤± ´ØÏ¢¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Î Rd ¥Õ¥¡¥¤¥ë¤ò `unix', `windows' ¤â¤·¤¯¤Ï `mac' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤³¤È¤¬½ÐÍè¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.9 Rd ½ñ¼°¤Î½èÍý

UNIXÈǤΠR ¤Ç¤Ï Rd ¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ë¤¤¤¯¤Ä¤«¤ÎÌ¿Î᤬¤¢¤ë¡£ Windows ¤Ç¤ÎÂбþʪ¤Ï¤³¤ÎÀá¤ÎºÇ¸å¤ÇÀâÌÀ¤µ¤ì¤ë¡£ ¤³¤ì¤éÁ´¤Æ¤Ï Perl ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Á°Äó¤Ç¤¢¤ë¡£

R CMD Rdconv ¤ò»È¤Ã¤Æ R ¤Î¥É¥­¥å¥á¥ó¥È½ñ¼°¤ò¾¤Î½ñ¼°¤ËÊÑ´¹¤·¤¿¤ê¡¢ ¼Â¹Ô»þ¸¡ºº¤Î¤¿¤á¤Ë¼Â¹Ô²ÄǽÎã¤ò¼è¤ê½Ð¤·¤¿¤ê¤Ç¤­¤ë¡£ ¸½ºß¤Î¤È¤³¤í¡¢Ê¿Ê¸¡¢HTML¡¢LaTeX ¤½¤·¤Æ¥Ð¡¼¥¸¥ç¥ó3¤Î S ¤Î¥É¥­¥å¥á¥ó¥È ½ñ¼°¤Ø¤ÎÊÑ´¹¤¬²Äǽ¤Ç¤¢¤ë¡£

¤³¤ÎÄã¿å½àÊÑ´¹¥Ä¡¼¥ë¤Ë²Ã¤¨¤Æ¡¢R ¤ÎÇÛÉÛʪ¤Ï Rd ½ñ¼° ¤ò½èÍý¤¹¤ëÆó¤Ä¤Î¥æ¡¼¥¶¡¼¥ì¥Ù¥ë¤Î ¥×¥í¥°¥é¥à¤òÄ󶡤¹¤ë¡£ R CMD Rd2txt ¤Ï "À¶½ñ" ¤µ¤ì¤¿Ê¿Ê¸½ÐÎϤò Rd ¥Õ¥¡¥¤¥ë¤«¤éºî¤ê½Ð¤·¡¢ ÆÃ¤Ë Rd ½ñ¼°¥É¥­¥å¥á¥ó¥È¤ò Emacs ¤Ç½ñ¤¯¤È¤­¤Ë¥×¥ì¥Ó¥å¡¼¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¢¤ë¡£ R CMD Rd2dvi ¤Ï Rd ¥Õ¥¡¥¤¥ë¤«¤é DVI (¤â¤·¤¯¤Ï¡¢¤â¤· option `--pdf' ¤¬Í¿¤¨¤é¤ì¤ë¤È PDF) ½ÐÎÏ ¤òÀ¸À®¤·¡¢ Rd ¥Õ¥¡¥¤¥ë¤ÏÌÀ¼¨Åª¤Ë¡¢¤Þ¤¿¤Ï¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼¥¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î¥Ñ¥¹¤Ç »Ø¼¨¤Ç¤­¤ë¡£¸å¼Ô¤Ç¤Ï¥Ñ¥Ã¥±¡¼¥¸Ãæ¤ÎÁ´¤Æ¤Î¥É¥­¥å¥á¥ó¥È¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë»²¹Í¥Þ¥Ë¥å¥¢¥ë¤¬ À¸À®¤µ¤ì¤ë¡£¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏƱ»þ¤Ë `DESCRIPTION' ¥Õ¥¡¥¤¥ëÃæ¤Î¾ðÊ󤬲䨤é¤ì¤ë¤Ç¤¢¤í¤¦¡£

R CMD Rdindex ¤ò»È¤Ã¤Æ¡¢°ú¿ô¤Ë»ØÄꤵ¤ì¤¿ Rd ¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥È¥ë¤È̾Á°¤òɽ¼¨¤¹¤ëÆÉ¤ß¤ä¤¹¤¯ À°·Á¤µ¤ì¤¿º÷°ú¥Õ¥¡¥¤¥ë¤òºî¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤³¤ì¤Ï¥¢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤Î `INDEX' ¤òºî¤ë¤Î¤Ë»È¤¨¡¢¤½¤¤¤Æ¤â¤·¤½¤ì¤¬¥Ç¡¼¥¿¤â´Þ¤á¤Ð `data' ¥Ç¥£¥ì¥¯¥È¥êÃæ¤Ë `00Index' ¥Ç¡¼¥¿º÷°ú¤òºî¤ë¡£ ¥Ñ¥Ã¥±¡¼¥¸ºîÀ®¥×¥í¥°¥é¥à R CMD build ¤Ï¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ëºÝ¼«Æ°Åª¤Ë¤³¤ì¤é¤Îº÷°ú¤ò ºî¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£

ºÇ¸å¤Ë R CMD Sd2Rd ¤Ï¥Ð¡¼¥¸¥ç¥ó3¤Î S ¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë (¤³¤ì¤Ï³ÈÄ¥¤µ¤ì¤¿ Nroff ½ñ¼°¤ò»È¤¦) ¤ò Rd ½ñ¼°¤ËÊѹ¹¤¹¤ë¡£¤³¤ì¤Ï ºÇ½é S ¥·¥¹¥Æ¥àÍѤ˽ñ¤«¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤ò R ¤Ë°Ü¿¢¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¢¤ë¡£

¾å¤Î³ÆÌ¿Îá¤ÎÀµ³Î¤ÊÍÑË¡¤ÈÍøÍѲÄǽ¤Ê¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ê¥ê¥¹¥È¤Ï R CMD command --help¡¢¤Ä¤Þ¤ê R CMD Rdconv --help ¤ò¼Â¹Ô¤·¤ÆÆÀ¤é¤ì¤ë¡£ Á´¤Æ¤ÎÍøÍѲÄǽ¤ÊÌ¿Îá¤Ï R --help ¤òÍѤ¤¤Æ°ìÍ÷¤Ç¤­¤ë¡£

¤³¤ì¤éÁ´¤Æ¤ÎÌ¿Îá¤Ï Windows ¤Ç¤ÎÂбþʪ¤ò»ý¤Ä¡£Â¿¤¯¤Î¾ì¹çñ¤Ë RCMD ¤ò Rcmd ¤ËÃÖ¤­´¹¤¨¤ë¤À¤±¤Ç¤¢¤ë¡£Îã³°¤Ï Rcmd Rd2dvi.sh (¤½¤·¤Æ¤³¤ì¤Ï¥½¡¼¥¹¤«¤é¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ä¡¼¥ë¤òɬÍפȤ¹¤ë)¡£ ¤³¤ì¤é¤Î³Æ¡¹¤ËÂФ· R CMD cmd --help ¤Ï»ÈÍÑË¡¤Î¾ÜºÙ¤òÍ¿¤¨¤ë¡£ (¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¿¤á¤Ë R ¥Ð¥¤¥Ê¥ê¤Î Windows ÇÛÉÛʪ¤òɬÍפȤ¹¤ë¤Ç¤¢¤í¤¦¡£)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. R ¥³¡¼¥É¤ÎÀ°Íý¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°

3.1 R ¥³¡¼¥É¤ÎÀ°ÆÜ  
3.2 R ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ë  

¥Ñ¥Ã¥±¡¼¥¸¤È¤·¤ÆÊݸ¤·¡¢¤Þ¤¿¤ª¤½¤é¤¯Â¾¤Î¿Í¤¬»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤ËÃͤ¹¤ë R ¥³¡¼¥É¤Ï¥É¥­¥å¥á¥ó¥È²½¤·¡¢À°ÍýÀ°ÆÜ¤·¡¢¤½¤·¤Æ¤ª¤½¤é¤¯ºÇŬ²½¤¹¤ë¤ËÃͤ¹¤ë¡£ ºÇ¸å¤ÎÆó¤Ä¤Î¹Ô°Ù¤¬¤³¤Î¾Ï¤Î¼çÂê¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 R ¥³¡¼¥É¤ÎÀ°ÆÜ

R ¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤«¤éÆÉ¤ß¹þ¤ó¤À´Ø¿ô¥³¡¼¥É¤È¡¢»ÈÍѼԤ¬ÆþÎϤ·¤¿¥³¡¼¥É¤ò °ã¤¦°·¤¤¤ò¤¹¤ë¡£»ÈÍѼԤ¬ÆþÎϤ·¤¿¥³¡¼¥É¤Ï¤¢¤ë»ÅÊý¤ÇÊݸ¤µ¤ì¤¿¥½¡¼¥¹¥³¡¼¥É¤ò »ý¤Á¡¢´Ø¿ô¤òɽ¼¨¤¹¤ë¤È¡¢¸µ¡¹¤Î¥½¡¼¥¹¤¬ºÆÀ¸¤µ¤ì¤ë¡£¥Ñ¥Ã¥±¡¼¥¸¤«¤éÆÉ¤ß¹þ¤Þ¤ì¤¿ ¥³¡¼¥É¤Ï¡Ê´ûÄê¤Ç¤Ï¡Ë¥½¡¼¥¹¥³¡¼¥É¤òÇË´þ¤·¡¢´Ø¿ô¤Îɽ¼¨¤Ï´Ø¿ô¤Î¥ê¥¹¥È¤Ï´Ø¿ô¤Î ¹½Ê¸²òÀÏÌÚ¤«¤éºÆ¹½À®¤µ¤ì¤ë¡£

ÉáÄÌ¥½¡¼¥¹¥³¡¼¥É¤òÊݸ¤·¤Æ¤ª¤¯¤³¤È¤ÏÎɤ¤¹Í¤¨¤Ç¤¢¤ê¡¢ÆÃ¤Ë¡¢Ãí¼á¤¬¥½¡¼¥¹¤«¤é¼è¤êµî¤é¤ì¤ë¤³¤È¤ò Ëɤ°¡£¤·¤«¤·¤Ê¤¬¤é¡¢°ì´Ó¤·¤¿¥¤¥ó¥Ç¥ó¥È¡¢±é»»»Ò¼þ¤ê¤Î¶õÇò¡¢¹¥¤Þ¤·¤¤ÉÕÃͱ黻»Ò <- ¤Î°ì´Ó ¤·¤¿»ÈÍѤò»ý¤Ä¡¢´Ê·é¤Ê´Ø¿ô¥ê¥¹¥È¤ò¹½Ê¸²òÀÏÌÚ¤«¤éºÆ¹½À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤³¤Î´Ê·é¤ÊÈǤϡ¢É¸½àŪ¤Ê½ñ¼°¤Ë´·¤ì¤¿Â¾¤ÎÆÉ¼Ô¤Ï¤¤¤¦¤ËµÚ¤Ð¤º¡¢¤è¤êÆÉ¤ß¤ä¤¹¤¤¡£

¥½¡¼¥¹¤ÎÊݸ¤òÇË´þ¤¹¤ëÆó¤Ä¤ÎÊýË¡¤¬¤¢¤ë¡£

  1. ¥³¡¼¥É¤¬ R ¤ËÆÉ¤ß¹þ¤Þ¤ì¤ëÁ°¤Ë¡¢¥ª¥×¥·¥ç¥ó keep.source ¤ò FALSE ¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
  2. Êݴɤµ¤ì¤¿¥½¡¼¥¹¥³¡¼¥É¤ò¤½¤Î source °À­¤ò¼è¤ê½ü¤¯¤³¤È¤ÇÇË´þ¤Ç¤­¤ë¡£ Î㤨¤Ð¡¢
     
    attr(myfun, "source") <- NULL
    

¤É¤Á¤é¤Î¾ì¹ç¤â¡¢´Ø¿ô¤ò¥ê¥¹¥È¤¹¤ì¤Ð¡¢É¸½àŪ¤Ê¥ì¥¤¥¢¥¦¥È¤òÆÀ¤ë¤Ç¤¢¤í¤¦¡£

À°ÆÜ¤·¤¿¤¤´Ø¿ô¥Õ¥¡¥¤¥ë `myfuns.R' ¤¬¤¢¤ë¤È¤·¤è¤¦¡£ °Ê²¼¤ò´Þ¤à¥Õ¥¡¥¤¥ë `tidy.R' ¤òºî¤ë

 
options(keep.source = FALSE)
source("myfuns.R")
dump(ls(all = TRUE), file = "new.myfuns.R")

¤½¤·¤Æ¡¢R ¤ò¤³¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤òÍѤ¤¤ÆÁö¤é¤»¤ë¡£¤³¤ì¤ò¥½¡¼¥¹¥³¡¼¥É¤È¤¹¤ë¤È¡¢ Î㤨¤Ð¡¢R --vanilla < tidy.R (Unix) ¤Þ¤¿¤Ï Rterm --vanilla < tidy.R (Windows)¡¢ ¤â¤·¤¯¤Ï°ì¤Ä¤Î R ¥»¥Ã¥·¥ç¥óÃæ¤Ë¼è¤ê¹þ¤à¡£¤½¤¦¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë `new.myfuns.R' ¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ëʤ٤é¤ì¤¿É¸½à¥ì¥¤¥¢¥¦¥È¤Î´Ø¿ô¤ò´Þ¤à¤Ç¤¢¤í¤¦¡£ Ãí¼á¤ò¤è¤êŬÀڤʾì½ê¤Ç¼è¤ê½ü¤¯¤³¤È¤¬É¬Íפˤʤ뤫¤âÃΤì¤Ê¤¤¡£

ɸ½à½ñ¼°¤Ï¤½¤ì°Ê¹ß¤ÎÀ°ÍýÀ°ÆÜ¤Î¤¿¤á¤ÎÎɤ¤½ÐȯÅÀ¤òÍ¿¤¨¤ë¡£ ¤Û¤È¤ó¤É¤Î¥Ñ¥Ã¥±¡¼¥¸ºî¼Ô¤Ï R ¥³¡¼¥É¤òÊÔ½¸¤¹¤ë¤¿¤á¤Ë¡¢Emacs ¤Î¥Ð¡¼¥¸¥ç¥ó¡ÊUnix ¤â¤·¤¯¤Ï Windows ¾å¡Ë¤ò ESS Emacs ¥Ñ¥Ã¥±¡¼¥¸¤Î ESS[S] ¥â¡¼¥É¤ò»È¤Ã¤ÆÊÔ½¸¤·¤Æ¤¤¤ë¡£ R ¼«¿È¤Î¥½¡¼¥¹¥³¡¼¥ÉÍѤ˿äÁ¦¤µ¤ì¤ë ESS[S] ¥â¡¼¥ÉÃæ¤Î¥¹¥¿¥¤¥ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï B. R ¤Î¥³¡¼¥Ç¥£¥ó¥°¤Îɸ½à¤ò»²¾È¤»¤è¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 R ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ë

R ¤Î¥Ð¡¼¥¸¥ç¥ó 1.2.0 ¤«¤é¡¢¤Û¤È¤ó¤É¤Î Unix ¸ß´¹¤Î R ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç R ¥³¡¼¥É¤ò¥×¥í¥Õ¥¡¥¤¥ë ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¥×¥í¥Õ¥¡¥¤¥ëµ¡Ç½¤Ï´ûÄê¤Î¹½ÃÛ¤Ç¤Ï Ìµ¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢R ¤ò¥ª¥×¥·¥ç¥ó `--enable-R-profiling' ÉÕ¤­¤Ç¹½ÃÛ¤¹¤ëɬÍפ¬¤¢¤ë¡£ »Äǰ¤Ê¤³¤È¤Ë¡¢¥×¥í¥Õ¥¡¥¤¥ë¤Ï Windows ¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤ OS ¤Îµ¡Ç½¤Ë°Í¸¤·¤Æ¤¤¤ë¡£

Ì¿Îá Rprof ¤ò»È¤¤¥×¥í¥Õ¥¡¥¤¥ë¤òÀ©¸æ¤¹¤ë¡£¤½¤Î¥Ø¥ë¥×ÊǤ¬´°Á´¤Ê¾ÜºÙ¤òÍ¿¤¨¤ë¡£ ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï·è¤Þ¤Ã¤¿¡Ê´ûÄê¤Ç¤Ï 20 ¥ß¥êÉá˴ü´ÖËè¤Ë¤É¤Î R ´Ø¿ô¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò µ­Ï¿¤·¡¢·ë²Ì¤ò¤¢¤ë¥Õ¥¡¥¤¥ë¡Ê´ûÄê¤Ç¤Ïºî¶È¥Ç¥£¥ì¥¯¥È¥êÃæ¤Î `Rprof.out'¡Ë¤Ë½ñ¤­¹þ¤à¤³¤È¤Çưºî¤¹¤ë¡£ ¤½¤·¤ÆÌ¿Îá R CMD Rprof Rprof.out ¤ò»È¤Ã¤Æ³èư¤òÍ×Ì󤹤뤳¤È¤¬¤Ç¤­¤ë¡£

Îã¤È¤·¤Æ¡¢¼¡¤Î¥³¡¼¥É (Venables & Ripley, 1999) ¤ò¹Í¤¨¤è¤¦¡£

 
library(MASS); library(boot); library(nls)
data(stormer)
storm.fm <- nls(Time ~ b*Viscosity/(Wt - c), stormer,
                start = c(b=29.401, c=2.2183))
st <- cbind(stormer, fit=fitted(storm.fm))
storm.bf <- function(rs, i) {
    st$Time <-  st$fit + rs[i]
    tmp <- nls(Time ~ (b * Viscosity)/(Wt - c), st,
               start = coef(storm.fm))
    tmp$m$getAllPars()
}
rs <- scale(resid(storm.fm), scale = F) # remove the mean
Rprof("boot.out")
storm.boot <- boot(rs, storm.bf, R = 4999) # pretty slow
Rprof()

¤³¤ì¤òÁö¤é¤»¤¿¸å¡¢·ë²Ì¤ò¼¡¤ÎÌ¿Îá¤ÇÍ×Ìó¤Ç¤­¤ë

 
R CMD Rprof boot.out

Each sample represents 0.02 seconds.
Total run time: 153.72 seconds.

Total seconds: time spent in function and callees.
Self seconds: time spent in function alone.

   %       total       %       self
 total    seconds     self    seconds    name
100.00    153.72      0.21      0.32     "boot"
 99.67    153.22      0.57      0.88     "statistic"
 96.10    147.72      2.15      3.30     "nls"
 53.36     82.02      1.12      1.72     "<Anonymous>"
 49.92     76.74      0.88      1.36     "list"
 49.38     75.90      1.20      1.84     ".Call"
 21.35     32.82      2.35      3.62     "eval"
 18.87     29.00      0.77      1.18     "as.list"
 18.64     28.66      0.43      0.66     "switch"
 17.47     26.86      2.55      3.92     "nlsModel"
 16.82     25.86      0.42      0.64     "model.frame"
 16.41     25.22      1.14      1.76     "model.frame.default"
 15.86     24.38      1.42      2.18     "qr.qty"
 14.06     21.62      2.76      4.24     "assign"
 13.06     20.08      1.57      2.42     "qr.coef"
 10.76     16.54      2.81      4.32     "storage.mode<-"
  ...


   %       self        %       total
 self     seconds    total    seconds    name
  5.80      8.92      6.61     10.16     "paste"
  4.25      6.54      8.13     12.50     "as.integer"
  4.07      6.26      7.62     11.72     "names"
  3.97      6.10      9.80     15.06     ".Fortran"
  3.36      5.16      4.74      7.28     "as.double"
  2.81      4.32     10.76     16.54     "storage.mode<-"
  2.76      4.24     14.06     21.62     "assign"
  2.55      3.92     17.47     26.86     "nlsModel"
  2.35      3.62     21.35     32.82     "eval"
  2.15      3.30     96.10    147.72     "nls"
  2.00      3.08      8.99     13.82     "lapply"
  1.99      3.06      1.99      3.06     "as.integer.default"
  ...

¤³¤ì¤Ï¤·¤Ð¤·¤Ð¶Ã¤¯¤Ù¤­·ë²Ì¤ò¤â¤¿¤é¤·¡¢¥³¥ó¥Ñ¥¤¥ëºÑ¥³¡¼¥É¤ÇÃÖ¤­´¹¤¨¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤ ¥Ü¥È¥ë¥Í¥Ã¥¯¤ä R ¥³¡¼¥É¤Î¾®ÊÒ¤òÆÃÄꤹ¤ë¤³¤È¤ËÌòΩ¤Ä¡£

Æó¤Ä¤Î·Ù¹ð¡§¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¾¯¡¹Í¾Ê¬¤Î¼Â¹Ô»þ´Ö¤ò²Ý¤¹¡£Ä¹»þ´Ö¤Î¼Â¹Ô¤ò¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¤È¡¢ ½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÏÈó¾ï¤ËŤ¯¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. ¥·¥¹¥Æ¥à¤È¾¸À¸ì´Ö¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹

4.1 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹  
4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran  
4.3 dyn.load ¤È dyn.unload  
4.4 ¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ®  
4.5 C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹  
4.6 C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦  
4.7 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .Call ¤È .External  
4.8 R ¤Îɽ¸½¼°¤ò C ¤«¤éɾ²Á¤¹¤ë  
4.9 ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹

¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤Ï R ´Ø¿ô system ¤ò·Ðͳ¤¹¤ë¡£ ¾ÜºÙ¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ë¡Ê¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥×¤ò»²¾È¡Ë¡£ ¤½¤·¤Æ°ÂÁ´¤Ë²¾Äê¤Ç¤­¤ë¤Û¤È¤ó¤ÉÁ´¤Æ¤Ï¡¢ºÇ½é¤Î°ú¿ô¤Ï¼Â¹Ô¡Êɬ¤º¤·¤â¥·¥§¥ë ¤Ë¤è¤é¤Ê¤¤¡Ë¤Î¤¿¤á¤Ë°ú¤­ÅϤµ¤ì¤ëʸ»úÎó command ¤Ç¡¢ ÂèÆó°ú¿ô¤Ï¡¢¤â¤·¤½¤ì¤¬¿¿¤Ê¤é¡¢Ì¿Îá¤Î½ÐÎϤò R ¤Îʸ»ú¥Ù¥¯¥È¥ë¤Ë ½¸¤á¤ë internal ¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦¡¢¤³¤È¤À¤±¤Ç¤¢¤ë¡£

´Ø¿ô system.time ¤¬·×»þ¤Î¤¿¤á¤Ë»È¤¨¤ë¡Ê¤·¤«¤·¤Ê¤¬¤é¡¢ÍøÍѤǤ­¤ë¾ðÊó¤ÏÈó¥æ¥Ë¥Ã¥¯¥¹¥×¥é¥Ã¥È¥Õ¥©¡¼¥à ¤Ç¤Ï¸Â¤é¤ì¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¡Ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran

¤³¤ÎÆó¤Ä¤Î´Ø¿ô¤Ï¡¢ºîÀ®»þ¤â¤·¤¯¤Ï dynload ¤Ë¤è¤ê R ¤Ë¥ê¥ó¥¯¤µ¤ì¤¿ ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ø¤Îɸ½à¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤òÄ󶡤¹¤ë¡Êsee section 4.3 dyn.load ¤È dyn.unload¡Ë¡£ ¤³¤ì¤é¤Ï¸µÍè¡¢¤½¤ì¤¾¤ì¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î C ¤È Fortran ¥³¡¼¥É¤òÂÐ¾Ý¤È ¤·¤Æ¤¤¤ë¡£¤·¤«¤·¡¢ .C ´Ø¿ô¤Ï C ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤òÀ¸À®¤Ç¤­¤ë¾¤Î¸À¸ì¤ËÂФ·¤Æ¤â »ÈÍѤǤ­¤ë¡¢Î㤨¤Ð C++ ¡Êsee section 4.5 C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¡Ë¡£

³Æ¡¹¤Î´Ø¿ô¤Ø¤ÎºÇ½é¤Î°ú¿ô¤Ï C ¤ä Fortran ¤¬Íý²ò¤Ç¤­¤ë¥·¥ó¥Ü¥ë̾¡¢¤Ä¤Þ¤ê´Ø¿ô̾¤ä ¥µ¥Ö¥ë¡¼¥Æ¥£¥ó̾¡¢¤òÍ¿¤¨¤ëʸ»úÎó¤Ç¤¢¤ë ¡Ê¥í¡¼¥É¥Æ¡¼¥Ö¥ëÃæ¤Î¥·¥ó¥Ü¥ë̾¤Ø¤ÎÂбþ¤Ï´Ø¿ô symbol.C ¤È symbol.For ¤Ç Í¿¤¨¤é¤ì¤ë¡¨ ¥·¥ó¥Ü¥ë¤¬ÆÉ¤ß¹þ¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ï¡¢Î㤨¤Ð¡¢ is.loaded(symbol.C("loglin")) ¤Ç¸¡ºº¤Ç¤­¤ë¡£¡Ë

¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ë°ú¤­ÅϤµ¤ì¤ë R ¥ª¥Ö¥¸¥§¥¯¥È¤òÍ¿¤¨¤ë¤½¤Î¾¤Î°ú¿ô¤Ï ºÇÂç65¸Äµö¤µ¤ì¤ë¡£Ä̾盧¤ì¤é¤Ï°ú¤­ÅϤµ¤ì¤ëÁ°¤Ë¥³¥Ô¡¼¤µ¤ì¡¢¥³¥ó¥Ñ¥¤¥ëºÑ¤ß ¥³¡¼¥É¤¬ÃͤòÊÖ¤¹¤È¤­¡¢R ¥ê¥¹¥È¤ËºÆ¤Ó¥³¥Ô¡¼¤µ¤ì¤ë¡£¤â¤·°ú¿ô¤¬Ì¾Á°¤ò Í¿¤¨¤é¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢¤³¤ì¤é¤ÏÊÖ¤µ¤ì¤ë¥ê¥¹¥È¥ª¥Ö¥¸¥§¥¯¥ÈÃæ¤ÎÀ®Ê¬¤Î ̾Á°¤È¤·¤Æ»È¤ï¤ì¤ë¡Ê¤·¤«¤·¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ë¤Ï°ú¤­ÅϤµ¤ì¤Ê¤¤¡Ë¡£

¼¡¤Îɽ¤Ï R ¥Ù¥¯¥È¥ë¤Î¥â¡¼¥É¤È C ´Ø¿ô¤â¤·¤¯¤Ï Fortarn ¥µ¥Ö¥ë¡¼¥Æ¥£¥ó ¤Ø¤Î°ú¿ô¤Î·¿´Ö¤ÎÂбþ¤òÍ¿¤¨¤ë¡£

R ÊÝ»ý¥â¡¼¥É C ¤Ç¤Î·¿ Fortran ¤Ç¤Î·¿
logical int * INTEGER
integer int * INTEGER
double double * DOUBLE PRECISION
complex Rcomplex * DOUBLE COMPLEX
character char ** CHARACTER*255

C ¤Î·¿ Rcomplex ¤Ï double ·¿¤Î¥á¥ó¥Ð r ¤È i ¤ò»ý¤Ä¹½Â¤ÂΤǤ¢¤ê¡¢`R.h' ¤Ë¤è¤êÆÉ¤ß¹þ¤Þ¤ì¤ë ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Complex.h' Ãæ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ ñ°ì¤Îʸ»úÎó¤À¤±¤¬ Fortran ¤ØÅϤµ¤ì¡¢¤½¤·¤Æ Fortran ¤«¤éÌᤵ¤ì¤ë¡£ ¤³¤ì¤¬¤¦¤Þ¤¯¹Ô¤¯¤«¤É¤¦¤«¤Ï¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸¤¹¤ë¡£ ¾¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ò .C ¤Ø°ú¤­ÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ ¾¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î¤É¤ì¤«¤òÍѤ¤¤ëÊý¤¬¹¥¤Þ¤·¤¤¡£ Îã³°¤Ï R ´Ø¿ô¤ò call_R ¤È¤È¤â¤Ë»È¤¦¤¿¤á¤Ë°ú¤­ÅϤ¹¾ì¹ç¤Ç¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤Ï call_R ¤òÍѤ¤¤Æ void * ¤È¤·¤Æ½èÍý¤µ¤ì¤ë¡£ ¤³¤Î¾ì¹ç¤Ç¤â .Call ¤ÎÊý¤¬¹¥¤Þ¤·¤¤¡£

ÊÝ»ý¥â¡¼¥É double ¤Î¿ôÃÍ¥Ù¥¯¥È¥ë¤ò¡¢Â°À­ Csinglw ¤òÀßÄꤹ¤ë ¡Ê°ìÈÖ´Êñ¤Ë¤Ï R ¤Î´Ø¿ô as.single¡¢ single¡¢storage.mode ¤òÍѤ¤¤ë¡Ë¤³¤È¤Ë¤è¤ê¡¢float * ¤È¤·¤Æ C ¤Ø¡¢¤â¤·¤¯¤Ï REAL ¤È¤·¤Æ Fortran ¤Ø°ú¤­ÅϤ¹¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ ¤³¤ì¤Ï´û¸¤Î C ¤â¤·¤¯¤Ï Fortarn ¥³¡¼¥É¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤ò½õ¤±¤ë¤³¤È¤À¤± ¤ò°Õ¿Þ¤·¤Æ¤¤¤ë¡£

·Á¼°Åª°ú¿ô NAOK ¤¬¿¿¤Ç¤Ê¤¤¸Â¤ê¡¢Â¾¤ÎÁ´¤Æ¤Î°ú¿ô¤Ï NA¡¢ ¤½¤·¤Æ IEEE ÆÃ¼ìÃÍ NaN, Inf, -Inf ¤¬¤¢¤ë¤«¤É¤¦¤«¸¡ºº¤µ¤ì¡¢ ¤³¤¦¤·¤¿Ãͤ¬Â¸ºß¤¹¤ë¤È¥¨¥é¡¼¤Ë¤Ê¤ë¡£ ¤â¤·¿¿¤Ê¤é¤Ð¡¢¤³¤ì¤é¤ÎÃͤϸ¡ººÌµ¤·¤Ç°ú¤­ÅϤµ¤ì¤ë¡£

°ú¿ô DUP ¤ò¥³¥Ô¡¼¤òÍÞÀ©¤¹¤ë¤¿¤á¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ ¤³¤ì¤Ï´í¸±¤Ç¤¢¤ë¡§ ¤½¤Î»ÈÍѤËÂФ¹¤ëµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥×¤ò¸«¤è¡£ ¤â¤· DUP=TRUE ¤Ê¤é¤Ð¡¢¿ôÃÍ¥Ù¥¯¥È¥ë¤ò float * ¤â¤·¤¯¤Ï REAL ¤È¤·¤Æ°ú¤­ÅϤ¹¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£

ºÇ¸å¤Ë¡¢°ú¿ô PACKAGE ¤ÏÆÃÄê¤Î¶¦Íѥ饤¥Ö¥é¥ê¤Î¤¿¤á¤Ë¡¢¥·¥ó¥Ü¥ë̾¤ò õ¤¹¤³¤È¤òÍÞÀ©¤¹¤ë¡Ê¤â¤·¤¯¤Ï R Ãæ¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¥³¡¼¥É¤Ë¤Ï "base" ¤ò ÍѤ¤¤è¡Ë¡£ ¤³¤ì¤Ï¶Ë¤á¤ÆË¾¤Þ¤·¤¤Á¼Ã֤Ǥ¢¤ë¡£¤Ê¤¼¤Ê¤é¡¢Æó¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸ºîÀ®¼Ô¤¬Æ±¤¸ ¥·¥ó¥Ü¥ë̾¤ò»È¤¦¤³¤È¤òÈò¤±¤ëÊýË¡¤Ï̵¤¯¡¢¤½¤¦¤·¤¿Ì¾Á°¤Î¾×ÆÍ¤Ï R ¤Î ¥¯¥é¥Ã¥·¥å¤ò°ú¤­µ¯¤³¤¹¤Î¤Ë½½Ê¬¤À¤«¤é¤Ç¤¢¤ë¡£

¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ï¤½¤Î°ú¿ô¤òÄ̤¸¤Æ°Ê³°Ç¡²¿¤Ê¤ë¤â¤Î¤âÊÖ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤ ¤³¤È¤òÃí°Õ¤·¤è¤¦¡§C ´Ø¿ô¤Ï void ·¿¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¡¢Fortran ¥×¥í¥°¥é¥à¤Ï ¥µ¥Ö¥ë¡¼¥Æ¥£¥ó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¹Í¤¨¤ò¤Þ¤È¤á¤ë¤¿¤á¤Ë¡¢Æó¤Ä¤ÎÍ­¸ÂÎó¤ò¾ö¤ß¹þ¤àÈó¾ï¤Ë´Êñ¤ÊÎã¤ò¹Í¤¨¤è¤¦¡£ ¡Ê¤³¤ì¤Ï¥¤¥ó¥¿¡¼¥×¥ê¥¿¸À¸ì¤Ç¤¢¤ë R ¤Ç¤Ï¹â®¤Ë¼Â¹Ô¤¹¤ë¤³¤È¤¬º¤Æñ¤Ç¤¢¤ë¤¬ C ¥³¡¼¥É¤Ç¤Ï´Êñ¤Ç¤¢¤ë¡£¡Ë.C ¤òÍѤ¤¤Æ¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬ ¤Ç¤­¤ë¤Ç¤¢¤í¤¦

 
void convolve(double *a, int *na, double *b, int *nb, double *ab)
{
  int i, j, nab = *na + *nb - 1;

  for(i = 0; i < nab; i++)
    ab[i] = 0.0;
  for(i = 0; i < *na; i++)
    for(j = 0; j < *nb; j++)
      ab[i + j] += a[i] * b[j];
}

¤³¤ì¤Ï R ¤«¤é¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë

 
conv <- function(a, b)
  .C("convolve",
     as.double(a),
     as.integer(length(a)),
     as.double(b),
     as.integer(length(b)),
     ab = double(length(a) + length(b) - 1))$ab

Á´¤Æ¤Î R ¤ÎÊÝ»ý¥â¡¼¥É¤òÀµ¤·¤¤¤â¤Î¤Ë¤¹¤ë¤¿¤á¡¢¶¯À©ÊÑ´¹¤ò¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ò Ãí°Õ¤·¤è¤¦¡¨·¿¤ÎÂбþ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤ÈÇİ®º¤Æñ¤Ê¸í¤Ã¤¿·ë²Ì¤ËƳ¤¯²ÄǽÀ­¤¬ ¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3 dyn.load ¤È dyn.unload

R ¤È¶¦¤Ë»È¤ï¤ì¤ë¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ï¶¦Íѥ饤¥Ö¥é¥ê¡ÊUnix, ¾ÜºÙ¤Ï see section 4.4 ¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ® ¡Ë¡¢¤â¤·¤¯¤Ï DLL (Windows) ¤È¤·¤Æ ¥í¡¼¥É¤µ¤ì¤ë¡£

¥é¥¤¥Ö¥é¥ê¤â¤·¤¯¤Ï DLL ¤Ï dyn.load ¤Ë¤è¤ê¥í¡¼¥É¤µ¤ì¡¢ dyn.unload ¤Ë¤è¤êÀÚ¤êÎ¥¤µ¤ì¤ë¡£ÀÚ¤êÎ¥¤·¤ÏÉáÄÌɬÍפǤϤʤ¤¤¬¡¢ Windows ¤ò´Þ¤à´ö¤Ä¤«¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï DLL ¤òºÆ¹½ÃÛ¤¹¤ë¤Î¤ËɬÍפǤ¢¤ë¡£

Æó¤Ä¤Î´Ø¿ô¤Ø¤ÎºÇ½é¤Î°ú¿ô¤Ï¥é¥¤¥Ö¥é¥ê¤Ø¤Î¥Ñ¥¹¤òÍ¿¤¨¤ëʸ»úÎó¤Ç¤¢¤ë¡£ ÍøÍѼԤϥ饤¥Ö¥é¥ê¤ËÂФ¹¤ëÆÃÄê¤Î¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¡ÊÎ㤨¤Ð `.so'¡Ë¤ò ²¾Äꤹ¤Ù¤­¤Ç¤Ï¤Ê¤¯¡¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë°Í¸¤»¤Ì¤è¤¦¤Ë¤¹¤ë¤¿¤á

 
file.path(path1, path2, paste("mylib", .Platform$dynlib.ext, sep=""))

¤È¤¤¤¦¹½Ê¸¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ Unix ¥·¥¹¥Æ¥à¤Ç¤Ï dyn.load ¤ËÍ¿¤¨¤é¤ì¤ë¥Ñ¥¹¤Ï¡¢ÀäÂХѥ¹¤Ç¤â¡¢¸½¥Ç¥£¥ì¥¯¥È¥ê ¤Ë´Ø¤¹¤ëÁêÂХѥ¹¤Ç¤âÎɤ¯¡¢¤â¤· `~' ¤Ç»Ï¤Þ¤ë¤Î¤Ê¤é¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê ¤Ë´Ø¤¹¤ëÁêÂХѥ¹¤Ç¤âÎɤ¤¡£

¥í¡¼¥É¤ÏºÇ¤âÉáÄ̤ˤϥѥ屡¼¥¸¤Î .First.lib ´Ø¿ôÃæ¤Î library.dynam ¤Î¸Æ¤Ó½Ð¤·¤Ç¹Ô¤ï¤ì¤ë¡£¤³¤ì¤Ï·Á¼°

 
library.dynam("libname", package, lib.loc)

¤ò»ý¤Á¡¢¤³¤³¤Ç libname ¤Ï³ÈÄ¥»Ò¤ò¾Ê¤¤¤¿¥é¥¤¥Ö¥é¥ê/DLL ¤Î̾Á°¤Ç¤¢¤ë¡£

´ö¤Ä¤«¤Î Unix ¥·¥¹¥Æ¥à¤Ç¤Ï¥é¥¤¥Ö¥é¥ê¤¬¥í¡¼¥É¤µ¤ì¤ë¤È¤­¡¢¥·¥ó¥Ü¥ë̾¤ò ¤É¤Î¤è¤¦¤Ë²ò·è¤¹¤ë¤«¤Ë´Ø¤·ÁªÂò»è¤¬¤¢¤ê¡¢°ú¿ô local ¤È global ¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë¡£¤³¤ì¤Ï¿¿¤ËɬÍפʤȤ­¤À¤±»È¤¦¤³¤È¡§ÆÃ¤Ë¡¢now=FALSE ¤òÍѤ¤¤¿¸å¤Ë̤²ò·è¤Î¥·¥ó¥Ü¥ë¤ò¸Æ¤Ó½Ð¤¹¤È R ¤Ï¤Ö¤·¤Ä¤±¤ËÄä»ß¤¹¤ë¤Ç¤¢¤í¤¦¡£

¤â¤·¤¢¤ë¥é¥¤¥Ö¥é¥ê¤ä DLL ¤¬½ÅÊ£¤·¤Æ¥í¡¼¥É¤µ¤ì¤ë¤È¡¢ºÇ¿·¤Î¤â¤Î¤¬»È¤ï¤ì¤ë¡£ ¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢Æ±¤¸¥·¥ó¥Ü¥ë̾¤¬Ê£¿ô¤Î¥é¥¤¥Ö¥é¥ê¤Ë¸½¤ì¤ë¤È¡¢ºÇ¤âºÇ¶á¤Ë¥í¡¼¥É ¤µ¤ì¤¿¤â¤Î¤¬»È¤ï¤ì¤ë¡£°ú¿ô PACKAGE ¤Ï¤É¤Î¥é¥¤¥Ö¥é¥ê¤Î¤â¤Î¤ò»È¤¦¤«¤Ë´Ø¤¹¤ë Û£Ëæ¤µ¤òÈò¤±¤ëÎɤ¤ÊýË¡¤òÄ󶡤¹¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 ¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ®

Unix ¤Ç¤Ï R ¤ËÆÉ¤ß¹þ¤Þ¤ì¤ë¶¦Íѥ饤¥Ö¥é¥ê¤Ï R CMD SHLIB ¤òÍѤ¤¤Æ ºî¤ê½Ð¤µ¤ì¤ë¡£¤³¤ì¤Ï°ú¿ô¤È¤·¤Æ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¡Ê³ÈÄ¥»Ò `.o'¡Ë ¤â¤·¤¯¤Ï C ¤Þ¤¿¤Ï Fortran ¤Î¥½¡¼¥¹¡Ê¤½¤ì¤¾¤ì³ÈÄ¥»Ò .c ¤Þ¤¿¤Ï .o¡Ë ¤Ç¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤ò¼õ¤±ÉÕ¤±¤ë¡£»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ì¿Îá R CMD SHLIB --help ¤ò ¼Â¹Ô¤¹¤ë¤«¡¢SHLIB ¤ËÂФ¹¤ë¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥×¤ò¸«¤è¡£ ¤â¤·¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥³¥ó¥Ñ¥¤¥ë¤¬¤¦¤Þ¤¯¹Ô¤«¤Ê¤±¤ì¤Ð¡¢¥³¥ó¥Ñ¥¤¥ë¥Ç¥£¥ì¥¯¥È¥êÃæ¤Î ¥Õ¥¡¥¤¥ë `Makevars' ¤ÎÃæ¤Ë ´ö¤Ä¤«¤ÎÊÑ¿ô¤òÀßÄꤹ¤ë¤«¡¢¥³¥ó¥Ñ¥¤¥ë¥Ç¥£¥ì¥¯¥È¥êÃæ¤Ë ɬÍפʵ¬Â§¤ò½ñ¤¤¤¿ `Makefile' ¤ò½ñ¤¯¤³¤È¤Ë¤è¤ê¡Ê¤â¤·¤¯¤Ï¡¢ÌÞÏÀÌ¿Îá¹Ô¤«¤é ľÀÜ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Æ¤âÎɤ¤¡Ë¡¢ÄɲäΥե饰¤ò»ØÄꤹ¤ë ¤³¤È¤¬¤Ç¤­¤ë¡§Î㤨¤Ð PKG_CPPFLAGS ¡ÊC ¥×¥ê¥×¥í¥»¥Ã¥µÍÑ¡¢Åµ·¿Åª¤Ë¤Ï `-I' ¥Õ¥é¥°¡Ë¡¢ PKG_CFLAGS ¤È PKG_FFLAGS ¡Ê¤½¤ì¤¾¤ì C ¤È Fortran ¥³¥ó¥Ñ¥¤¥é¡Ë¡£ ƱÍͤˡ¢¶¦Íѥ饤¥Ö¥é¥ê¤ò¹½ÃÛ¤¹¤ëºÝ¤Ë¡¢ÄɲäΠ`-l' ¤ä `-L' ¥Õ¥é¥°¤ò ¥ê¥ó¥«¤Ë°ú¤­ÅϤ¹¤Î¤Ë¡¢`Makevars' Ãæ¤ÎÊÑ¿ô PKG_LIBS ¤ò »È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

¤â¤·Äɲåѥ屡¼¥¸ pkg ¤¬ C ¤Þ¤¿¤Ï Fortran ¥³¡¼¥É¤ò¤½¤Î `src' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤ó¤Ç¤¤¤¿¤é¡¢Ì¿Îá R CMD INSTALL ¤Ï ¶¦Íѥ饤¥Ö¥é¥ê¡Ê¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î .First.lib ¤òÍѤ¤¤Æ R Ãæ¤Ë¥í¡¼¥É¤µ¤ì¤ë¡Ë ¤òµ­½Ò¤Î R CMD SHLIB µ¡¹½¤òÍѤ¤¤Æ¼«Æ°Åª¤ËºîÀ®¤¹¤ë¤«¡¢ ¤â¤·¥Ç¥£¥ì¥¯¥È¥ê `src' ¤¬ Makefile ¤ò´Þ¤á¤Ð make ¤ò ÍѤ¤¤ÆºîÀ®¤¹¤ë¡£¤É¤Á¤é¤Î¾ì¹ç¤â¡¢¤â¤· `Makefile' ¤¬Â¸ºß¤¹¤ì¤Ð¡¢ make ¤òµ¯Æ°¤¹¤ë¾ì¹ç¤½¤ì¤¬ºÇ½é¤ËÆÉ¤ß¼è¤é¤ì¤ë¡£ ¤â¤· `Makefile' ¤¬¿¿¤ËɬÍפ«ÍѰդµ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢ºîÀ®¤µ¤ì¤ë¶¦ÍÑ ¥é¥¤¥Ö¥é¥ê¤Ï R ¤¬¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î Fortran ¥é¥¤¥Ö¥é¥ê¤Ë¤¿¤¤¤·¥ê¥ó¥¯ ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÊݾڤ¹¤ëɬÍפ¬¤¢¤ë¡¨make ÊÑ¿ô FLIBS ¤¬¤³¤Î ¾ðÊó¤ò´Þ¤à¡£

Windows ¤Ë±÷¤±¤ëƱÃͤʵ¡Ç½¤ÏÌ¿Îá Rcmd SHLIB ¤Ç¤¢¤ë¡¨ ¤â¤·Â¸ºß¤¹¤ì¤Ð¡¢¥Õ¥¡¥¤¥ë `Makevars.win' ¤â¤·¤¯¤Ï `Makefile.win' ¤¬ `Makevars' ¤â¤·¤¯¤Ï `Makefile' ¤è¤ê¤â¹¥¤Þ¤·¤¤¡£ ¡Ê¤³¤ì¤Ï¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Î¤Ë Windows ¤Î R ¥Ð¥¤¥Ê¥ê¤ò ɬÍפȤ·¤Ê¤¤¡£¡Ë


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.5 C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹

¼¡¤Î¤è¤¦¤Ê²¾ÁÛŪ¤Ê C++ ¥é¥¤¥Ö¥é¥ê¤ò¹Í¤¨¤è¤¦¡§¤³¤ì¤ÏÆó¤Ä¤Î¥Õ¥¡¥¤¥ë `X.hh' ¤È `X.cc' ¤«¤é¤Ê¤ê¡¢R Ãæ¤Ç»È¤¤¤¿¤¤Æó¤Ä¤Î¥¯¥é¥¹ X ¤È Y ¤ò¥¤¥ó¥×¥ê¥á¥ó¥È¤¹¤ë¡£

 
// X.hh

class X {
public:
  X (); ~X ();
};

class Y {
public:
  Y (); ~Y ();
};

 
// X.cc

#include <iostream.h>
#include "X.hh"

static Y y;

X::X()  { cout << "constructor X" << endl; }
X::~X() { cout << "destructor X" << endl; }
Y::Y()  { cout << "constructor Y" << endl; }
Y::~Y() { cout << "destructor Y" << endl; }

R ¤È¶¦¤Ë»È¤¦¤¿¤á¡¢²æ¡¹¤¬¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤Í£°ì¤Ä¤Î¤³¤È¤Ï¡¢ wrapper ´Ø¿ô¤ò½ñ¤­¡¢¤½¤ì¤¬°Ê²¼¤Ë´Þ¤Þ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¤³¤È¤Ç¤¢¤ë

 
extern "C" {

}

Î㤨¤Ð¡¢

 
// X_main.cc:

#include "X.hh"

extern "C" {

void X_main () {
  X x;
}

}

¥³¥ó¥Ñ¥¤¥ë¤È¥ê¥ó¥¯¤Ï¡ÊC ¤Î¥³¥ó¥Ñ¥¤¥é¤È¥ê¥ó¥«¡¢¤â¤·¤¯¤Ï¥ê¥ó¥«¼«¿È¤Ç¤Ï¤Ê¤¯¡Ë C++ ¤Î¥³¥ó¥Ñ¥¤¥é¤È¥ê¥ó¥«¤òÍѤ¤¤Æ¤Ê¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¨¤µ¤â¤Ê¤±¤ì¤Ð¡¢ C++ ¤Î½é´ü²½¥³¡¼¥É¤¬¸Æ¤Ó½Ð¤µ¤ì¡Ê¤·¤¿¤¬¤Ã¤ÆÀÅŪÊÑ¿ô Y ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤¬ ¸Æ¤Ó½Ð¤µ¤ì¡Ë¤Ê¤¤¡£Å¬Àڤ˹½ÃÛ¤µ¤ì¤¿ Unix ¥·¥¹¥Æ¥à¡Ê¥Ð¡¼¥¸¥ç¥ó 1.1 ¤Î C++ ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤¿¡Ë¤Ç¤Ïñ¤Ë¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð

 
R CMD SHLIB X.cc X_main.cc

¶¦Íѥ饤¥Ö¥é¥ê¡¢Åµ·¿Åª¤Ë¤Ï `X.so'¡¢¤¬ºî¤é¤ì¤ë¡Ê¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò̾¤Ï »ÈÍÑ¥×¥é¥Ã¥È¤Ç°Û¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡Ë¡£¤³¤³¤Ç R ¤òµ¯Æ°¤¹¤ì¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦¡£

 
R : Copyright 2000, The R Development Core Team
Version 1.1.0 Under development (unstable) (April 14, 2000)
...
Type    "q()" to quit R.

R> dyn.load(paste("X", .Platform$dynlib.ext, sep = ""))
constructor Y
R> .C("X_main")
constructor X
destructor X
list()
R> q()
Save workspace image? [y/n/c]: y
destructor Y

R for Windows FAQ (`rw-FAQ') ¤Ï¡¢¤³¤ÎÎã¤òÍÍ¡¹¤Ê Eindows ÍÑ¥³¥ó¥Ñ¥¤¥é¤Ç Ç¡²¿¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤«¤Ë´Ø¤¹¤ë¾ÜºÙ¤ò´Þ¤à¡£

¤³¤ÎÎã¤Ë¤ª¤±¤ë¤è¤¦¤Ê¡¢C++ ¤Î iostream ¤Î»ÈÍѤ϶ËÎÏÈò¤±¤ëÊý¤¬Îɤ¤¡£ ½ÐÎϤ¬ R ¤Î¥³¥ó¥½¡¼¥ë¤Ë¸½¤ì¤ëÊݾڤÏÁ´¤¯¤Ê¤¤¤·¡¢¼ÂºÝ Windows ÍѤΠR ¤Î ¥³¥ó¥½¡¼¥ë¤Ë¤Ï¸½¤ì¤Ê¤¤¡£²Äǽ¤Ê¸Â¤êÁ´¤Æ¤Î I/O ¤ËÂФ· R ¤Î¥³¡¼¥É¤ò»È¤¦¤«¡¢ C ¤Î entry point (see section 5.5 ɽ¼¨) µ¡Ç½¤ò»È¤¦¤³¤È¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6 C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦

R ´Ø¿ô¤Î¼Â¹Ô¤ò²Ã®¤¹¤ë¤¿¤á¤Ë C ¥³¡¼¥É¤ò»È¤¦¤³¤È¤Ï¤·¤Ð¤·¤ÐÈó¾ï¤ËÍ­¸ú¤Ç¤¢¤ë¡£ ÅÁÅýŪ¤Ë¤Ï¤³¤ì¤Ï R ¤Î .C ´Ø¿ô¤ò·Ðͳ¤·¤Æ¹Ô¤ï¤ì¤ë¡£ ¤³¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î°ì¤Ä¤ÎÀ©¸Â¤Ï R ¥ª¥Ö¥¸¥§¥¯¥È¤Ï C Ãæ¤ÇľÀÜ¤Ë¤Ï ½èÍý¤Ç¤­¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£¤³¤ì¤Ï C ¥³¡¼¥ÉÃæ¤«¤é R ´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¤¤¤È¤­ °ìÁØÌÌÅݤˤʤ롣¤³¤ì¤ò¹Ô¤¦¤¿¤á¤Ë call_R ¤È¸Æ¤Ð¤ì¤ë C ¤Î´Ø¿ô ¡ÊS ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËƱÍÍ¤Ë call_S ¤È¤¤¤¦Ì¾Á°¤â»È¤¨¤ë¡Ë¤¬¤¢¤ë¤¬¡¢ »È¤¦¤Î¤ÏÌÌÅݤǤ¢¤ê¡¢¤³¤³¤ÇÀâÌÀ¤µ¤ì¤ëµ¡¹½¤ÎÊý¤¬»È¤¤¤ä¤¹¤¤¤ÈƱ»þ¤Ë¡¢¤è¤ê ¶¯ÎϤǤ¢¤ë¡£

ÆâÉôŪ¤Ê R ¤Î¥Ç¡¼¥¿¹½Â¤¤ò»È¤¦ C ¥³¡¼¥É¤òËÜÅö¤ËɬÍפȤ¹¤ë¤Ê¤é¤Ð¡¢ .Call ¤È .External ´Ø¿ô¤òÍѤ¤¤Æ¤³¤ì¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤½¤ì¤¾¤ì¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¡¢R ¤«¤é¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¹½Ê¸¤Ï .C ¤Î ¤½¤ì¤ÈƱÍͤǤ¢¤ë¤¬¡¢Æó¤Ä¤Î´Ø¿ô¤Ï¤«¤Ê¤ê°Û¤Ê¤ë C ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤ò»ý¤Ä¡£ °ìÈÌŪ¤Ë .Call ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¡Ê¥Ð¡¼¥¸¥ç¥ó 4 ¤Î S ¤ÎƱ¤¸Ì¾Á°¤Î ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤ò¿¿»÷¤¿¡Ë¤Ï»ÈÍѤ¬¾¯¡¹Ã±½ã¤Ç¤¢¤ë¤¬¡¢.External ¤Ï ¾¯¡¹°ìÈÌŪ¤Ç¤¢¤ë¡£

.Call ¤Î¸Æ¤Ó½Ð¤·¤Ï .C ¤È¤È¤Æ¤âÎɤ¯»÷¤Æ¤¤¤ë¡¢Î㤨¤Ð

 
.Call("convolve2", a, b)

Âè°ì°ú¿ô¤Ï¡¢´û¤Ë R ¤Ë¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë C ¤Î¥³¡¼¥É¤Î¥·¥ó¥Ü¥ë̾¤òÍ¿¤¨¤ë ʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ºÇÂç 65 ¸Ä¤Î R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°ú¿ô¤È¤·¤Æ °ú¤­ÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î C ¦¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë

 
#include <R.h>
#include <Rinternals.h>

SEXP convolve2(SEXP a, SEXP b)
 ...

.External ¤Î¸Æ¤Ó½Ð¤·¤Ï¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¢¤ë

 
.External("convolveE", a, b)

¤·¤«¤·¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î C ¦¤Ï°Û¤Ê¤ê¡¢Í£°ì¤Ä¤Î°ú¿ô¤ò»ý¤Ä

 
#include <R.h>
#include <Rinternals.h>

SEXP convolveE(SEXP args)
 ...

¤³¤³¤Ç args ¤Ï¡¢°ú¿ô¤ò¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë Lisp É÷¤Î¥ê¥¹¥È¤Ç¤¢¤ë LISTSXP ¤Ç¤¢¤ë¡£

¤É¤Á¤é¤ÎÎã¤Ç¤â R ¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rinternals.h' Ãæ¤Ç ÄêµÁ¤µ¤ì¤¿°ìÁȤδؿô¤ä¥Þ¥¯¥í¡¢¤â¤·¤¯¤Ï `Rdefines.h' ¤ÇÄêµÁ¤µ¤ì¤¿¤è¤ê¹â¿å½à¤Î ¥Þ¥¯¥í¤òÍѤ¤¤ÆÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£.Call ¤È .External ¤Ë´Ø¤¹¤ë ¾ÜºÙ¤Ï°Ê²¼¤Ç¹¹¤ËÀâÌÀ¤µ¤ì¤ë¡£

.Call ¤ä .External ¤ò»È¤¦¤³¤È¤Ë¤¹¤ëÁ°¤Ë¾¤Î²ÄǽÀ­¤ò ¸«¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£ºÇ½é¤Ë¡¢¥¤¥ó¥¿¡¼¥×¥ê¥¿¸À¸ì¤Ç¤¢¤ë R ¥³¡¼¥É¤ò »È¤¦¡¨¤â¤·¤³¤ì¤¬½½Ê¬Áᤱ¤ì¤Ð¡¢¤³¤ì¤¬Ä̾ïºÇÎɤÎÁªÂò»è¤Ç¤¢¤ë¡£ ƱÍÍ¤Ë .C ¤Î»ÈÍѤǽ½Ê¬¤«¤É¤¦¤«¸«¤ë¤Ù¤­¤Ç¤¢¤ë¡£¤â¤·¼Â¹Ô²ÝÂ꤬ ñ½ã¤Ç R ¤Î¸Æ¤Ó½Ð¤·¤¬ÉÔÍפʤé¤Ð .C ¤Ç½½Ê¬¤Ç¤¢¤ë¡£ ¿·¤·¤¤¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ï S ¤È R ¤ËºÇ¶áÉÕ¤±²Ã¤¨¤é¤ì¤¿¤â¤Î¤Ç¡¢ ¤½¤ì¤¬»ÈÍѲÄǽ¤Ë¤Ê¤ëÁ°¤«¤é¡¢Â¿Î̤ÎÍ­ÍѤʥ³¡¼¥É¤¬ .C ¤À¤±¤ò »È¤Ã¤Æ½ñ¤«¤ì¤Æ¤­¤¿¡£.Call ¤È .External ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ï ¤è¤ê¿¤¯¤ÎÀ©¸æ¤ò²Äǽ¤Ë¤¹¤ë¤¬¡¢Æ±»þ¤Ë¤è¤ê¿¤¯¤ÎÀÕǤ¤ò²Ý¤·¡¢Ãí°Õ¿¼¤¯ »È¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¤è¤êºÇ¶á¤Î¤ä¤êÊý¤Ï¥Ð¡¼¥¸¥ç¥ó 4.4 ¤Î S ¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹ .Call ¥Þ¥¯¥í¤È ´Ø¿ô¤Î R ÈǤò»È¤¦¤³¤È¤Ç¤¢¤ë¡£¤³¤ì¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rdefines.h' Ãæ¤Ë ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Ï¿¾¯¤è¤ê´Êñ¤ÊÀܶáË¡¤Ç¤¢¤ê¡¢¤â¤·¥³¡¼¥É¤¬¤¢¤é¤æ¤ëÃʳ¬¤Ç S ¤È¶¦ÍѤµ¤ì¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢³Î¤«¤Ë¹¥¤Þ¤·¤¤¤ä¤êÊý¤Ç¤¢¤ë¡£

R ¤ÎËܼÁŪ¤ÊÉôʬ¤¬¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤È¥Þ¥¯¥í¤òÍѤ¤¤Æ°Ü¿¢¤µ¤ì¤Æ¤¤¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ R ¥½¡¼¥¹¥³¡¼¥É¤ÏË­ÉÙ¤ÊÎã¤È¡ÖÇ¡²¿¤Ë¤¹¤Ù¤­¤«¡×¤òÄ󶡤¹¤ë¡§ ¼ÂºÝ¡¢¤³¤³¤Ç¤ÎÎã¤Î¿¤¯¤¬¡¢»÷¤¿¤è¤¦¤Ê²ÝÂê¤ò¼Â¹Ô¤¹¤ë R ¤Î¥·¥¹¥Æ¥à´Ø¿ô¤ò Ãí°Õ¿¼¤¯Ä´¤Ù¤ë¤³¤È¤Ë¤è¤ê³«È¯¤µ¤ì¤¿¡£¥¤¥ó¥¹¥Ô¥ì¡¼¥·¥ç¥ó¤òÆÀ¤ë¤¿¤á¤Ë¡¢ ¥½¡¼¥¹¥³¡¼¥É¤òÍøÍѤ·¤è¤¦¡£

C ¥³¡¼¥ÉÃæ¤Ç¤É¤Î¤è¤¦¤Ë R ¥ª¥Ö¥¸¥§¥¯¥È¤ò¼è¤ê°·¤¦¤«¤ËÉÕ¤¤¤Æ ´ö¤Ä¤«¤Î¤³¤È¤òÃΤëɬÍפ¬¤¢¤ë¡£½èÍý¤¹¤Ù¤­Á´¤Æ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤Ï ·¿ SEXP(2)¤ò»ý¤Ä¡¢¤³¤ì¤ÏÄêµÁ·¿ SEXPREC ¤ò»ý¤Ä ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£¤³¤ì¤Ï R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÄ̾ï¤ÎÁ´¤Æ¤Î¥¿¥¤¥×¡¢ ¤Ä¤Þ¤êÍÍ¡¹¤Ê¥¿¥¤¥×¤Î¥Ù¥¯¥È¥ë¡¢´Ø¿ô¡¢´Ä¶­¡¢¤ò ½èÍý¤Ç¤­¤ë ²ÄÊѤʷ¿ ¤È¹Í¤¨¤ë¤Èʬ¤«¤ê¤ä¤¹¤¤¡£ ¾ÜºÙ¤Ï¤³¤ÎÀá¤Î¸å¤ÇÍ¿¤¨¤é¤ì¤ë¤¬¡¢Â¿¤¯¤ÎÌÜŪ¤Ë¼è¤Ã¤Æ¡¢¥×¥í¥°¥é¥Þ¤Ï¤½¤ì¤ò ÃΤäƤ¤¤ëɬÍפϤʤ¤¡£¤½¤ì¤è¤ê¤â¡¢Visual Basic ¤ÇÍѤ¤¤é¤ì¤ë¤è¤¦¤Ê¥â¥Ç¥ë¤ò ¹Í¤¨¤è¤¦¡£¤½¤³¤Ç¤Ï R ¥ª¥Ö¥¸¥§¥¯¥È¤Ï²ÄÊÑ·¿¤È¤·¤Æ C ¥³¡¼¥ÉÃæ¤Ç½èÍý¡ÊR ¤Î ¥¤¥ó¥¿¥×¥ê¥¿¥³¡¼¥É¤Ë¤ª¤±¤ë¤è¤¦¤Ë¡Ë¤µ¤ì¡¢Å¬Åö¤ÊÉôʬ¤¬¡¢Î㤨¤Ð¿ôÃÍ·×»»¤Î¤¿¤á¤Ë¡¢ ɬÍפʤȤ­¤À¤±¼è¤ê½Ð¤µ¤ì¤ë¡£R ¤Î¥¤¥ó¥¿¥×¥ê¥¿¥³¡¼¥É¤Ë¤ª¤±¤ë¤Î¤ÈƱÍͤˡ¢ ²ÄÊѤʷ¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÀµ¤·¤¤·¿¤Ëľ¤¹¤¿¤á¤Ë¶¯À©ÊÑ´¹¤¬ÉÑÈˤ˹Ԥï¤ì¤ë¡£

4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë  
4.6.2 ¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÊÝ´É  
4.6.3 R ¤Î·¿¤Î¾ÜºÙ  
4.6.4 °À­  
4.6.5 ¥¯¥é¥¹  
4.6.6 ¥ê¥¹¥È¤Î½èÍý  
4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë

R ¤¬¥á¥â¥ê¤Î³äÅö¤ò¹Ô¤¦ÊýË¡¤ËÉÕ¤¤¤ÆÂ¿¾¯ÃΤäƤª¤¯É¬Íפ¬¤¢¤ë¡£ R ¥ª¥Ö¥¸¥§¥¯¥È¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤Ï¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ³«Êü¤Ç¤­¤Ê¤¤¡£ Âå¤ï¤ê¤Ë¡¢¥á¥â¥ê¤ÏŬµ¹¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤µ¤ì¤ë. ¤Ä¤Þ¤ê¡¢»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤Á´¤Æ¤Î ¥á¥â¥ê¤Ï³«Êü¤µ¤ì¤ë¡£ ¡ÊR 1.2 °ÊÁ°¤Ç¤Ï¡£¥ª¥Ö¥¸¥§¥¯¥È¤Ï°Üư¤â¤µ¤ì¤ë¤«¡£¡Ë

R ¤Î¥ª¥Ö¥¸¥§¥¯¥È·¿¤Ï `Rinternals.h' Ãæ¤ÎÄêµÁ·¿ SEXPREC ¤Ç ÄêµÁ¤µ¤ì¤ë C ¤Î¹½Â¤ÂΤÇɽ¸½¤µ¤ì¤ë¡£¤³¤ì¤Ï´ö¤Ä¤«¤Î¤â¤Î¤ò´Þ¤ß¡¢½¢Ãæ ¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤ä¾¤Î SEXPREC ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò´Þ¤à¡£ ¸½ºß¤Î¥á¥â¥ê½èÍý¥¹¥­¡¼¥à¤Ç¤Ï¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤Ï¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥óÃæ¤Ë °Üư¤µ¤ì¤ë¤«¤â¤·¤ì¤º¡¢¤½¤ì¤é¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¹¹¿·¤µ¤ì¤ë¡£ ¤³¤Î¤¿¤á¤Ë¡¢¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¹½Â¤Ãæ¤Î¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò Êݸ¤·ºÆ»ÈÍѤ¹¤ë¤³¤È¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¡£ SEXP ¤Ïñ¤Ë SEXPREC ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£

¤â¤· C ¥³¡¼¥ÉÃæ¤Ë R ¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤Ã¤¿¤é¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë PROTECT ¥Þ¥¯¥í¤òÍѤ¤ R ¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤òÃΤ餻¤ëɬÍפ¬¤¢¤ë¡£ ¤³¤ì¤Ï R ¤Ë¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬»ÈÍÑÃæ¤Ç¤¢¤ë¤³¤È¤ò¹ð¤²¡¢¤½¤Î¤¿¤á¤½¤ì¤¬Ç˲õ¤µ¤ì¤ë¤³¤È ¤Ï¤Ê¤¯¤Ê¤ë¡£Êݸ¤ì¤ë¤Î¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ê¥Ý¥¤¥ó¥¿ÊÑ¿ô¤Ç¤Ï¤Ê¤¤¤³¤È¤òÃí°Õ¤·¤è¤¦¡£ ¤¢¤ë»þÅÀ¤Ç PROTECT(p) ¤ò¹Ô¤¨¤Ð¤½¤ì°Ê¹ß p ¤¬Êݸ¤ì¤ë ¤È¿®¤¸¤ë¤³¤È¤ÏÎɤ¯¤¢¤ë´Ö°ã¤¤¤Ç¤¢¤ê¡¢°ìö¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤¬ p ¤Ë ³ä¤êÅö¤Æ¤é¤ì¤ì¤Ð¿¿¤Ç¤Ï¤Ê¤¯¤Ê¤ë¡£

°ì¤Ä¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤òÊݸ¤ì¤Ð¡¢¼«Æ°Åª¤ËÂбþ¤¹¤ë SEXPREC Ãæ¤Î ¥Ý¥¤¥ó¥¿¤¬»Ø¤¹Á´¤Æ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤¬Êݸ¤ì¤ë¡£

PROTECT ¤Î¸Æ¤Ó½Ð¤·¤ËÀÕǤ¤òÉ餦¤Î¤Ï¥×¥í¥°¥é¥Þ¤À¤±¤Ç¤¢¤ë¡£ Âбþ¤·¤Æ¥Þ¥¯¥í UNPROTECT ¤¬¤¢¤ê¡¢°ú¿ô¤È¤·¤Æ¤â¤Ï¤äÉÔÍפˤʤê Êݸî¤ò²ò½ü¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¿ô¤ò int ¤È¤·¤ÆÍ¿¤¨¤ë¡£ Êݸ¹½¤Ï¥¹¥¿¥Ã¥¯¤Ë´ð¤Å¤¯¡£¤·¤¿¤¬¤Ã¤Æ UNPROTECT(n) ¤Ï Êݸ¤ì¤Æ¤¤¤ëľ¶á¤Î n ¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÊݸî²ò½ü¤¹¤ë¡£ PROTECT ¤È UNPROTECT ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢¥æ¡¼¥¶¤Î¥³¡¼¥É¤¬ ½ªÎ»¤¹¤ëºÝÄà¹ç¤¬¼è¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ R ¤Ï¤â¤·´ÉÍý¤¬¤Þ¤º¤±¤ì¤Ð·Ù¹ð "stack imbalance in .Call" ¡Ê¤â¤·¤¯¤Ï .External¡Ë¤ò¼õ¤±¤ë¡£

°Ê²¼¤Ï C ¥³¡¼¥ÉÃæ¤Ç R ¤Î¿ôÃÍ¥Ù¥¯¥È¥ë¤òºî¤ë¾®¤µ¤ÊÎã¤Ç¤¢¤ë¡£ ºÇ½é¤Ë `Rdefines.h' Ãæ¤Î¥Þ¥¯¥í¤ò»È¤¦¡§

 
#include <R.h>
#include <Rdefines.h>

  SEXP ab;
    ....
  PROTECT(ab = NEW_NUMERIC(2));
  NUMERIC_POINTER(ab)[0] = 123.45;
  NUMERIC_POINTER(ab)[1] = 67.89;
  UNPROTECT(1);

¤½¤·¤Æ¤½¤ì¤«¤é `Rinternals.h'Ãæ¤Î¥Þ¥¯¥í¤ò»È¤¦¡§

 
#include <R.h>
#include <Rinternals.h>

  SEXP ab;
    ....
  PROTECT(ab = allocVector(REALSXP, 2));
  REAL(ab)[0] = 123.45; REAL(ab)[1] = 67.89;
  UNPROTECT(1);

¤³¤³¤Ç¡¢ÆÉ¼Ô¤Ï¤³¤¦¤·¤¿Áàºî¤Î´Ö¤Ë¤É¤¦¤¹¤ì¤Ð R ¥ª¥Ö¥¸¥§¥¯¥È¤ò½üµî¤Ç¤­¤ë¤« ÃΤꤿ¤¤¤«¤âÃΤì¤Ê¤¤¡£Æ°ºî¤·¤Æ¤¤¤ë¤Î¤ÏÀµ¤Ë C ¥³¡¼¥É¤À¤«¤é¤Ç¤¢¤ë¡£ ·ëÏÀ¤È¤·¤Æ¤Ï¡¢¤³¤Î¾ì¹ç¤ÏÊݸî¤Ê¤·¤Ç¹Ô¤¨¤ÐÎɤ¤¡£ ¤·¤«¤·°ìÈÌŪ¤Ë¤¤¤Ã¤Æ¡¢²æ¡¹¤Ï»ÈÍÑÃæ¤Î R ¤Î¥Þ¥¯¥í¤ä´Ø¿ô¤ÎÇØ¸å¤Ë ²¿¤¬¤¢¤ë¤«ÃΤé¤Ê¤¤¡Ê¤½¤ì¤É¤³¤í¤«ÃΤꤿ¤¯¤â¤Ê¤¤¡Ë¤·¡¢¤½¤ì¤é¤Î°ì¤Ä¤¬ ¥á¥â¥ê³äÅö¤ò°ú¤­µ¯¤³¤·¡¢¤·¤¿¤¬¤Ã¤Æ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Ë¤è¤ê¡¢ ²æ¡¹¤Î¥³¡¼¥É ab ¤ò¼è¤ê¤µ¤Ã¡Ê°Üư¤·¡Ë¤Æ¤·¤Þ¤¦¤«¤âÃΤì¤Ê¤¤¡£ Ä̾ïÃí°Õ¿¼¤¯¤·¤¹¤®¤ëÊý¤¬Îɤ¯¡¢R ¤Î¥Þ¥¯¥í¤ä´Ø¿ô¤¬¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò ½üµî¡Ê°Üư¡Ë¤¹¤ë¤«¤âÃΤì¤Ê¤¤¤³¤È¤ò²¾Äꤷ¤¿Êý¤¬Îɤ¤¡£

¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ÊݸËÜÅö¤ËɬÍפ«¤É¤¦¤«¿µ½Å¤Ë´Æ»ë¤¹¤ëɬÍפ¬¤¢¤ë¡£ ÆÃ¤ËÂçÎ̤Υª¥Ö¥¸¥§¥¯¥È¤¬À¸À®¤µ¤ì¤ë¾ì¹ç¤ÏÃí°Õ¤¬É¬Íפˤʤ롣 ¥Ý¥¤¥ó¥¿¤ÎÊݸ¥¿¥Ã¥¯¤Ï¸ÇÄꥵ¥¤¥º¡Ê´ûÄêÃÍ 10,000¡Ë¤Ç¤¢¤ê¡¢¤¤¤Ã¤Ñ¤¤¤Ë¤Ê¤ë ²ÄǽÀ­¤¬¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¸«¤¨¤ë¸Â¤ê¤ÎÁ´¤Æ¤ò PROTECT ¤·¡¢ ºÇ¸å¤Ë¿ôÀé¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò UNPROTECT ¤¹¤ë¤Î¤ÏÎɤ¤¤ä¤êÊý¤Ç¤Ï¤Ê¤¤¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤ò¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î°ìÉô¤Ë³ä¤êÅö¤Æ¡Ê¼«Æ°Åª¤ËÊݸ¤ì¤ë¡Ë¤¿¤ê¡¢ »ÈÍѸå¤Ëľ¤Á¤ËÊݸî²ò½ü¤¹¤ë¤³¤È¤Ï¡¢¤Û¤È¤ó¤Éɬ¤º²Äǽ¤Ç¤¢¤ë¡£

´û¤Ë»ÈÍÑÃæ¤Ç¤¢¤ë¤³¤È¤ò R ¤¬ÃΤäƤ¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ¤ÏÊݸî¤ÏÉÔÍפǤ¢¤ë¡£ ÆÃ¤Ë¡¢¤³¤ì¤Ï´Ø¿ô¤Î°ú¿ô¤Ë¤Ä¤¤¤ÆÅö¤Æ¤Ï¤Þ¤ë¡£

¤è¤ê»È¤ï¤ì¤ë¤³¤È¤Î¾¯¤Ê¤¤¥Þ¥¯¥í UNPROTECT_PTR(s) ¤¬¤¢¤ê¡¢ SEXP s ¤Ë¤è¤ê¥Ý¥¤¥ó¥È¤µ¤ì¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¡¢¤¿¤È¤¨¤½¤ì¤¬ ¥Ý¥¤¥ó¥¿Êݸ¥¿¥Ã¥¯¤ÎºÇ¾åÉô¤Ë¤Ê¤¯¤Æ¤â¡¢Êݸî²ò½ü¤¹¤ë¡£ ¤³¤ì¤Ï¥Ñ¡¼¥µ°Ê³°¤Ç¤Ï¤Û¤È¤ó¤ÉɬÍפǤʤ¤¡ÊR ¤Î¥½¡¼¥¹¤Î `plot3d.c' Ãæ¤Ë °ì¤Ä¤ÎÎ㤬¤¢¤ë¡Ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.2 ¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÊÝ´É

¿¤¯¤ÎÌÜŪ¤Ë¼è¤Ã¤Æ¡¢R ¥ª¥Ö¥¸¥§¥¯¥È¤ò³ä¤êÅö¤Æ¡¢¤½¤ì¤é¤òÁàºî¤¹¤ë¤À¤±¤Ç ½½Ê¬¤Ç¤¢¤ë¡£¤Û¤ó¤Î¾¯¤·¤Î allocXxx ´Ø¿ô¤¬ `Rinternals.h' Ãæ¤Ë ÄêµÁ¤µ¤ì¤Æ¤¤¤ë---¤½¤ì¤é¤òÄ´¤Ù¤Æ¤ß¤¿¤¯¤Ê¤ë¤«¤âÃΤì¤Ê¤¤¡£ ¤³¤ì¤é¤ÏÍÍ¡¹¤Ê·¿¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ò³ä¤êÅö¤Æ¡¢É¸½àŪ¤Ê¥Ù¥¯¥È¥ë·¿¤ËÂФ·¤Æ¤Ï¡¢ `Rdefines.h' Ãæ¤ÇÄêµÁ¤µ¤ì¤¿ NEW_XXX ¥Þ¥¯¥í¤¬¤¢¤ë¡£

·×»»ÅÓÃæ¤Ë C ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë¥á¥â¥ê³ä¤êÅö¤Æ¤¬É¬Íפˤʤ俤顢 R_alloc ¤ò¸Æ¤Ó½Ð¤¹¤Î¤¬ºÇÁ±¤Ç¤¢¤ë¡¨see section 4.6.2 ¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÊÝ´É¡£ ¤³¤ì¤éÁ´¤Æ¤Î¥á¥â¥ê³ä¤êÅö¤Æ¥ë¡¼¥Á¥ó¤Ï¤½¤ì¼«¿È¤Î¥¨¥é¡¼¸¡ººµ¡Ç½¤ò »ý¤Ä¤Î¤Ç¡¢¤â¤·¥á¥â¥ê¤¬³ä¤êÅö¤ÆÉÔǽ¤Ê¤é¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¸Æ¤Ó½Ð¤·¤¬ Ìá¤é¤Ê¤¤¤³¤È¤ò¥×¥í¥°¥é¥Þ¤Ï²¾Äꤷ¤ÆÎɤ¤¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.3 R ¤Î·¿¤Î¾ÜºÙ

`Rinternals.h' Ãæ¤ÇÄêµÁ¤µ¤ì¤¿¥Þ¥¯¥í¤ò»È¤¦¤Ë¤Ï R ¤Î·¿¤¬ ÆâÉô Ū¤ËÇ¡²¿¤ËÃΤé¤ì¤ë¤Î¤«¤òÃΤëɬÍפ¬¤¢¤ë¡§¤³¤ì¤Ï¤â¤· `Rdefines.h' Ãæ¤Î¥Þ¥¯¥í¤ò»È¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢Â¿¤«¤ì¾¯¤Ê¤«¤ì ´°Á´¤Ë±£¤µ¤ì¤Æ¤¤¤ë¡£

°Û¤Ê¤Ã¤¿ R ¥Ç¡¼¥¿¥¿¥¤¥×¤Ï C Ãæ¤Ç SEXPTYPE ¤Ë¤è¤êɽ¸½¤µ¤ì¤Æ¤¤¤ë¡£ ´ö¤Ä¤«¤Ï R ¤Ç¤ª¤Ê¤¸¤ß¤Î¤â¤Î¤Ç¤¢¤ê¡¢´ö¤Ä¤«¤ÏÆâÉôŪ¤Ê¥Ç¡¼¥¿·¿¤Ç¤¢¤ë¡£ Ä̾ï¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥â¡¼¥É¤¬¼¡¤Îɽ¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤ë¡£

SEXPTYPE R ¤ÎÂбþ·¿
REALSXP ·¿ double ¤Î¿ôÃÍ
INTSXP À°¿ô
CPLXSXP Ê£ÁÇ¿ô
LGLSXP ÏÀÍýÃÍ
STRSXP ʸ»ú
VECSXP ¥ê¥¹¥È¡ÊÁí¾ÎŪ¥Ù¥¯¥È¥ë¡Ë
LISTXP "dotted-pair" ¥ê¥¹¥È
DOTSXP `...' ¥ª¥Ö¥¸¥§¥¯¥È
NILSXP NULL
SYMSXP ̾Á°/¥·¥ó¥Ü¥ë
CLOSXP ´Ø¿ô¤Þ¤¿¤Ï´Ø¿ô¤Î closure
ENVSXP ´Ä¶­

½ÅÍ×¤ÊÆâÉô SEXPTYPE ¤Ë¤Ï LANGSXP, CHARSXP Åù¤¬¤¢¤ë¡£

°ú¿ô¤Î·¿¤Ë´Ø¤·´°Á´¤ËÆÀ¿´¤·¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¥³¡¼¥É¤Ï¥Ç¡¼¥¿·¿¤ò ¸¡ºº¤¹¤Ù¤­¤Ç¤¢¤ë¡£»þ¤Ë¤Ï C Ãæ¤Ç¤¢¤ë R ɽ¸½¼°¤òɾ²Á¤¹¤ë¤³¤È¤Ë¤è¤ê ºî¤é¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ç¡¼¥¿·¿¤ò¸¡ºº¤¹¤ë¤³¤È¤âɬÍפˤʤ뤫¤âÃΤì¤Ê¤¤¡£ ·¿¸¡ºº¤Î¤¿¤á¤Ë¤Ï isReal, isInteger ¤½¤·¤Æ isString ¤È¤¤¤Ã¤¿´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¾¤ÎÎà»÷¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rinternals.h' ¤ò¸«¤è¡£¤³¤ì¤éÁ´¤Æ¤Ï SEXP ¤ò °ú¿ô¤Ë¼è¤ê¡¢TRUE ¤â¤·¤¯¤Ï FALSE ¤ò°ÕÌ£¤¹¤ë 1 ¤ª¤è¤Ó 0 ¤òÊÖ¤¹¡£ ºÆ¤Ó¤³¤ì¤ò¹Ô¤¦Æó¤Ä¤ÎÊýË¡¤¬¤¢¤ê¡¢`Rdefines.h' ¤Ï IS_NUMERIC ¤È¤¤¤Ã¤¿ ¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¡£

¤â¤· SEXP ¤¬Àµ¤·¤¤·¿¤Ç¤Ê¤¤¤È²¿¤¬µ¯¤³¤ë¤Î¤À¤í¤¦¤«¡© »þÀÞ¥¨¥é¡¼¤òºî¤ê½Ð¤¹°Ê³°¤ÎÁªÂò»è¤¬¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£ ¤³¤Î¤¿¤á¤Ë¤Ï´Ø¿ô error ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ Ä̾索¥Ö¥¸¥§¥¯¥È¤òÀµ¤·¤¤·¿¤Ë¶¯À©ÊÑ´¹¤¹¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¡£ Î㤨¤Ð¡¢¤â¤· SEXP ¤¬ INTEGER ·¿¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤Ã¤¿¤¬¡¢ REAL ·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬É¬ÍפÀ¤Ã¤¿¤È¤·¤è¤¦¡£ ·¿¤òÊÑ´¹¤¹¤ë¤Ë¤Ï¼¡¤ÎƱÃͤÊÊýË¡¤¬¤¢¤ë

 
PROTECT(newSexp = coerceVector(oldSexp, REALSXP));

¤Þ¤¿¤Ï

 
PROTECT(newSexp = AS_NUMERIC(oldSexp));

¿·¤·¤¤ ¥ª¥Ö¥¸¥§¥¯¥È ¤¬ºî¤é¤ì¤¿¤È¤­¤ÏÊݸɬÍפˤʤ롨 SEXP ¤Ë¤è¤êºÇ½é¥Ý¥¤¥ó¥È¤µ¤ì¤Æ¤¤¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ÏºÆ»ÈÍѤµ¤ì¤Æ¤â °ÍÁ³¤È¤·¤ÆÊݸ¤ì¤Æ¤¤¤ë¤¬¡¢¤·¤«¤·º£¤ä»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£

Á´¤Æ¤Î¶¯À©ÊÑ´¹´Ø¿ô¤Ï¼«Ê¬¼«¿È¤Ç¥¨¥é¡¼¸¡ºº¤ò¹Ô¤¤¡¢É¬Íפ˱þ¤¸¤Æ·Ù¹ð¤È¶¦¤Ë NA ¤ò À¸À®¤·¤¿¤ê¡¢¥¨¥é¡¼Ää»ß¤ò¹Ô¤¦¡£

¤³¤ì¤Þ¤Ç¤Î¤È¤³¤í¡¢Ç¡²¿¤Ë R ¥ª¥Ö¥¸¥§¥¯¥È¤ò C ¥³¡¼¥É¤«¤éÀ¸À®¤¹¤ë¤«¡¢ ¤½¤·¤ÆÇ¡²¿¤Ë R ¤Î¿ôÃÍ¥Ù¥¯¥È¥ë¤«¤é¿ôÃͥǡ¼¥¿¤ò¼è¤ê½Ð¤¹¤«¡¢¤À¤±¤ò¸«¤Æ¤­¤¿¡£ ¤³¤ì¤é¤Ï²æ¡¹¤¬ R ¥ª¥Ö¥¸¥§¥¯¥È¤ò¿ôÃÍ¥¢¥ë¥´¥ê¥º¥à¤Ë¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤¹¤ë¤Î¤Ë ½½Ê¬¤Ç¤¢¤ë¡£¤·¤«¤·¡¢Í­ÍѤʥª¥Ö¥¸¥§¥¯¥È¤ÎÊÖ¤êÃͤòºî¤ê½Ð¤¹¤Ë¤Ï¤â¤¦¾¯¤· ÃΤëɬÍפ¬¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.4 °À­

¿¤¯¤Î R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï°À­¤ò»ý¤Ä¡§ ºÇ¤âÍ­ÍѤʤâ¤Î¤Ï¥¯¥é¥¹¤È¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò¹ÔÎó¤äÇÛÎó ¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë dim ¤È dimnames ¤Ç¤¢¤ë¡£ ¤Þ¤¿¡¢¥Ù¥¯¥È¥ë¤Î names °À­¤òÍѤ¤¤Æºî¶È¤¹¤ë¤ÈÊØÍø¤Ç¤¢¤ë¡£

¤³¤Î¤³¤È¤òÀâÌÀ¤¹¤ë¤¿¤á¤Ë¡¢Æó¤Ä¤Î¥Ù¥¯¥È¥ë¤Î³°ÀѤò¼è¤ë¥³¡¼¥É¤ò½ñ¤¤¤Æ¤ß¤è¤¦ (¤½¤Î¤¿¤á¤Ë¤Ï´û¤Ë outer ¤È %o% ¤¬ ¤¢¤ë¤¬)¡£ ¤¤¤Ä¤â¤Î¤è¤¦¤Ë R ¥³¡¼¥É¤Ïñ½ç¤Ç¤¢¤ë¡£

 
out <- function(x, y) .Call("out", as.double(x), as.double(y))

¤³¤³¤Ç²æ¡¹¤Ï x ¤È y ¤Ï¤Ò¤ç¤Ã¤È¤¹¤ë¤È̾Á°¤ò»ý¤Ä¿ôÃÍ¥Ù¥¯¥È¥ë¤È²¾Äꤹ¤ë¡£ º£²ó¤Ï R ¥³¡¼¥É¤ò¸Æ¤Ó½Ð¤¹¤È¤­¶¯À©ÊÑ´¹¤ò¹Ô¤¦¡£

·×»»¤ò¹Ô¤¦ C ¥³¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ç¤¢¤ë

 
#include <R.h>
#include <Rinternals.h>

SEXP out(SEXP x, SEXP y)
{
  int i, j, nx, ny;
  double tmp;
  SEXP ans;

  nx = length(x); ny = length(y);
  PROTECT(ans = allocMatrix(REALSXP, nx, ny));
  for(i = 0; i < nx; i++) {
    tmp = REAL(x)[i];
    for(j = 0; j < ny; j++)
      REAL(ans)[i + nx*j] = tmp * REAL(y)[j];
  }
  UNPROTECT(1);
  return(ans);
}

¤·¤«¤·¤Ê¤¬¤é·ë²Ì¤Ë dimnames °À­¤òÀßÄꤷ¤¿¤¤¤«¤âÃΤì¤Ê¤¤¡£ allocMatrix ¤¬¶áÆ»¤òÄ󶡤¹¤ë¤¬¡¢dim °À­¤ò¤É¤Î¤è¤¦¤ËľÀÜÀßÄꤹ¤ë¤«¤ò¾Ò²ð¤·¤è¤¦¡£

 
#include <R.h>
#include <Rinternals.h>

SEXP out(SEXP x, SEXP y)
{
  int i, j, nx, ny;
  double tmp;
  SEXP ans, dim, dimnames;

  nx = length(x); ny = length(y);
  PROTECT(ans = allocVector(REALSXP, nx*ny));
  for(i = 0; i < nx; i++) {
    tmp = REAL(x)[i];
    for(j = 0; j < ny; j++)
      REAL(ans)[i + nx*j] = tmp * REAL(y)[j];
  }
  PROTECT(dim = allocVector(INTSXP, 2));
  INTEGER(dim)[0] = nx; INTEGER(dim)[1] = ny;
  setAttrib(ans, R_DimSymbol, dim);

  PROTECT(dimnames = allocVector(VECSXP, 2));
  SET_VECTOR_ELT(dimnames, 0, getAttrib(x, R_NamesSymbol));
  SET_VECTOR_ELT(dimnames, 1, getAttrib(y, R_NamesSymbol));
  setAttrib(ans, R_DimNamesSymbol, dimnames);
  UNPROTECT(3);
  return(ans);
}

¤³¤ÎÎã¤Ï´ö¤Ä¤«¤Î¿·¤·¤¤ÆÃħ¤ò¾Ò²ð¤¹¤ë¡£´Ø¿ô getAttrib ¤È setAttrib ¤Ï¸Ä¡¹¤Î°À­¤òÆÀ¡¢¤½¤·¤ÆÀßÄꤹ¤ë¡£ÂèÆó°ú¿ô¤Ï²æ¡¹¤¬Í׵᤹¤ë̾Á°¤ò°À­¤Î¥·¥ó¥Ü¥ëɽ¤ËÄêµÁ¤¹¤ë SEXP ¤Ç¤¢¤ë¡£¤³¤ì¤é¤ª¤è¤Ó¤â¤Ã¤È¿¤¯¤Î¤½¤¦¤·¤¿¥·¥ó¥Ü¥ë¤¬¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rinternals.h' ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

¤³¤³¤Ç¤â¶áÆ»¤¬¤¢¤ë: ´Ø¿ô namesgets, dimgets ¤½¤·¤Æ dimnamesgets ¤Ï names<-, dim<- ¤½¤·¤Æ dimnames<- ¤ÎÆâÉô·Á¤Ç¤¢¤ê¡¢¤Þ¤¿ GetMatrixDimnames ¤ä GetArrayDimnames ¤È¤¤¤Ã¤¿´Ø¿ô¤¬¤¢¤ë¡£

ͽ¤áÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤Â°À­¤òÉղä·¤¿¤é²¿¤¬µ¯¤³¤ë¤Ç¤¢¤í¤¦¤«¡© ¤ï¤ì¤ï¤ì¤Ï¤½¤ì¤ËÂФ¹¤ë¥·¥ó¥Ü¥ë¤ò install ¤Ø¤Î¸Æ¤Ó½Ð¤··Ðͳ¤ÇÉÕ¤±²Ã¤¨¤ëɬÍפ¬¤¢¤ë¡£ Îã¤È¤·¤ÆÃÍ 3.0 ¤ò»ý¤Ä°À­ "version" ¤òÉÕ¤±²Ã¤¨¤¿¤¤¤È¤·¤è¤¦¡£ ¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¹Í¤¨¤é¤ì¤ë

 
  SEXP version;
  PROTECT(version = allocVector(REALSXP, 1));
  REAL(version) = 3.0;
  setAttrib(ans, install("version"), version);
  UNPROTECT(1);

ÉÔÍפʤȤ­¤Ë install ¤ò»È¤¦¤Î¤Ï³²¤¬¤Ê¤¯¡¢¤â¤·¤½¤ì¤¬´û¤Ë¥·¥ó¥Ü¥ëɽ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤¿¤Ê¤é¤Ð ¥·¥ó¥Ü¥ë¤ò¸¡º÷¤¹¤ë´Êñ¤ÊÊýË¡¤òÄ󶡤¹¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.5 ¥¯¥é¥¹

R ¤Ç¤Ï¥¯¥é¥¹¤Ïñ¤Ë̾Á° "class" ¤ò»ý¤Ä°À­¤Ç¤¢¤ê¡¢¤½¤¦¤·¤¿¤â¤Î¤È¤·¤Æ°·¤¦¤³¤È¤¬½ÐÍè¤ë¤¬ classgets ¤È¤¤¤¦¶áÆ»¤¬¤¢¤ë¡£²æ¡¹¤ÎÎã¤ÎÊÖ¤êÃÍ¤Ë "mat" ¤È¤¤¤¦¥¯¥é¥¹¤òÍ¿¤¨¤¿¤¤¤È¤·¤è¤¦¡£ ¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÎɤ¤

 
#include <R.h>
#include <Rdefines.h>
    ....
  SEXP ans, dim, dimnames, class;
    ....
  PROTECT(class = allocVector(STRSXP, 1));
  SET_STRING_ELT(class, 0, mkChar("mat"));
  classgets(ans, class);
  UNPROTECT(4);
  return(ans);
}

ÃͤÏʸ»ú¥Ù¥¯¥È¥ë¤Ç¤¢¤ë¤«¤é¡¢C ¤Îʸ»úÇÛÎ󤫤餽¤ì¤ò¤É¤Î¤è¤¦¤Ëºî¤ê½Ð¤¹¤«¤ò¤·¤ëɬÍפ¬¤¢¤ë¡£ ¤³¤ì¤Ë¤Ï´Ø¿ô mkChar ¤òÍѤ¤¤ì¤ÐÎɤ¤¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.6 ¥ê¥¹¥È¤Î½èÍý

¥ê¥¹¥È¤ò°·¤¦¤Ë¤Ï¾¯¡¹Ãí°Õ¤¬¤¤¤ë¡£¤Ê¤¼¤Ê¤é R ¤Ï LISP É÷¤Î¥ê¥¹¥È ¡Ê¸½ºß "pairlists" ¤È¸Æ¤Ð¤ì¤ë¡Ë¤Î»ÈÍѤ«¤é S É÷¤ÎÁí¾ÎŪ¤Ê¥Ù¥¯¥È¥ë¤Î »ÈÍѤ˰ܹԤ·¤¿¤«¤é¤Ç¤¢¤ë¡£·ë²Ì¤È¤·¤Æ¡¢¥â¡¼¥É list ¤Î¥ª¥Ö¥¸¥§¥¯¥È ¤ËÂФ¹¤ëŬÀڤʥƥ¹¥È¤Ï isNewList ¤Ç¤¢¤ê¡¢allocList(n) ¤Ç¤Ï¡Ö¤Ê¤¯¡× allocVector(VECSXP, n) ¤òɬÍפȤ¹¤ë¡£

¥ê¥¹¥È¤ÎÀ®Ê¬¤ÏÁí¾ÎŪ¥Ù¥¯¥È¥ë¤ËľÀÜ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ÃͤòÆÀ¤¿¤êÀßÄꤷ¤¿¤ê ¤Ç¤­¤ë¡£¼¡¤Î¤è¤¦¤Ê¥ê¥¹¥È¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤ë¤È¤·¤è¤¦

 
a <- list(f=1, g=2, h=3)

¤¹¤ë¤È a$g ¤Ï a[[2]] ¤È¤·¤Æ¼¡¤Î¤è¤¦¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë

 
  double g;
    ....
  g = REAL(VECTOR_ELT(a, 1))[0];

¤³¤ì¤Ï¤¹¤°¤ËÌÌÅݤˤʤ뤫¤âÃΤì¤Ê¤¤¡£ ¤½¤³¤Ç¡¢¼¡¤Î´Ø¿ô¡Ê¥Ñ¥Ã¥±¡¼¥¸ nls Ãæ¤Î°ì¤Ä¤Ë´ð¤Å¤¯¡Ë¤¬Èó¾ï¤ËÍ­ÍѤˤʤ롧

 
/* str ¤È¤¤¤¦Ì¾Á°¤Î¥ê¥¹¥ÈÀ®Ê¬¤òÆÀ¤ë¡¢¤µ¤â¤Ê¤±¤ì¤Ð NULL ¤òÊÖ¤¹ */

SEXP getListElement(SEXP list, char *str)
{
  SEXP elmt = R_NilValue, names = getAttrib(list, R_NamesSymbol);
  int i;

  for (i = 0; i < length(list); i++)
    if(strcmp(CHAR(STRING_ELT(names, i)), str) == 0) {
      elmt = VECTOR_ELT(list, i);
      break;
    }
  return elmt;
}

¤½¤·¤Æ¼¡¤Î¤è¤¦¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë

 
  double g;
  g = REAL(getListElement(a, "g"))[0];


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë

²æ¡¹¤Î C ·×»»¤ÇɬÍפÊÁ´¤Æ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤Ï .Call ¤â¤·¤¯¤Ï .External °ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¤Î¤¬ÉáÄ̤Ǥ¢¤í¤¦¡£ ¤·¤«¤·¤Ê¤¬¤é R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃͤò¡¢¤½¤ì¤é¤Î̾Á°¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤ê¡¢ C ¤ÎÆâÉô¤«¤é¸«¤¤½Ð¤¹¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ ¼¡¤Î¥³¡¼¥É¤Ï get(name, envir = rho) ¤ÈƱÃͤǤ¢¤ë¡£

 
SEXP getvar(SEXP name, SEXP rho)
{
  SEXP ans;

  if(!isString(name) || length(name) != 1)
    error("name is not a single string");
  if(!isEnvironment(rho))
    error("rho should be an environment");
  ans = findVar(install(CHAR(STRING_ELT(name, 0))), rho);
  printf("first value is %f\n", REAL(ans)[0]);
  return(R_NilValue);
}

¼ç¤¿¤ë»Å»ö¤Ï findVar ¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤ë¡£¤·¤«¤·¤Ê¤¬¤é¤½¤ì¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¢name ¤ò ̾Á°¤È¤·¤Æ¥·¥ó¥Ü¥ëÉ½Ãæ¤ËÅÐÏ¿¤¹¤ëɬÍפ¬¤¢¤ë¡£ ÃÍ¤ÏÆâÉôŪ¤Ë¤·¤«É¬Íפʤ«¤Ã¤¿¤«¤é¡¢ÃÍ NULL ¤òÊÖ¤¹¡£

¼¡¤Î¹½Ê¸¤ò»ý¤ÄƱÍͤδؿô

 
void defineVar(SEXP symbol, SEXP value, SEXP rho)
void setVar(SEXP symbol, SEXP value, SEXP rho)

¤ò¡¢R ¥ª¥Ö¥¸¥§¥¯¥È¤ËÃͤòÂåÆþ¤¹¤ë¤³¤È¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ defineVar ¤ÏÆÃÄê¤Î´Ä¶­¥Õ¥ì¡¼¥àÃæ¤Ë¿·¤·¤¤·ë¹ç¤òºî¤Ã¤¿¤ê¡¢´û¸¤Î·ë¹ç¤ÎÃͤò Êѹ¹¤¹¤ë¡¨¤³¤ì¤Ï assign(symbol, value, envir = rho, inherits = FALSE) ¤ÈƱÃͤǤ¢¤ë¡£ setVar ¤Ï rho Ãæ¤â¤·¤¯¤Ï¤½¤ì¤ò´Þ¤à´Ä¶­Ãæ¤Ç symbol ¤ËÂФ¹¤ë´û¸¤Î·ë¹ç¤òõº÷¤¹¤ë¡£ ¤â¤·¤¢¤ë·ë¹ç¤¬¸«ÉÕ¤«¤ì¤Ð¡¢¤½¤ÎÃͤ¬ value ¤ËÊѹ¹¤µ¤ì¤ë¡£¤µ¤â¤Ê¤±¤ì¤Ð¡¢¥°¥í¡¼¥Ð¥ë¤Ê´Ä¶­Ãæ¤Ç ¿·¤·¤¤·ë¹ç¤¬À¸À®¤µ¤ì¤ë¡£¤³¤ì¤Ï assign(symbol, value, envir = rho, inherits = TRUE) ¤ËÂбþ¤¹¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6.8 R ¤Î¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Ë±÷¤±¤ëÊѹ¹ÅÀ

¥Ð¡¼¥¸¥ç¥ó 1.2.0 ¤Î R ¤Ï¿·¤·¤¤ "generational" ¤Ê¥¬¥Ù¥Ã¥¸¥³¥ì¥¯¥·¥ç¥ó¤òƳÆþ¤·¤¿¡£ ¤³¤ì¤Ï¡¢Ê¸»úÎó¤È¥Ù¥¯¥È¥ë(¤½¤·¤Æ¸À¸ì¥ª¥Ö¥¸¥§¥¯¥È)¤¬¿ôÃ͸¶»ÒŪ¥¿¥¤¥×¤È¤Ï°Û¤Ê¤Ã¤Æ½èÍý¤µ¤ì¤ë¤³¤È¤ò °ÕÌ£¤¹¤ë¡£

¤³¤ì¤Þ¤Ç¤Î¥³¡¼¥É¤Ï¼¡¤Î¤è¤¦¤Ê¥¹¥¿¥¤¥ë¤Ç½ñ¤«¤ì¤¿
 
  VECTOR(dimnames)[0] = getAttrib(x, R_NamesSymbol);

¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤Ï¤â¤Ï¤äµö¤µ¤ì¤Ê¤¤¡£´Ø¿ô VECTOR_ELT ¤È SET_VECTOR_ELT ¤¬Áí¾ÎŪ¥Ù¥¯¥È¥ë¤ÎÍ×ÁǤ˥¢¥¯¥»¥¹¤·ÀßÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤³¤ì¤é¤Ïʸ»ú¥Ù¥¯¥È¥ë¤ËÂФ¹¤ë STRING_ELT ¤È SET_STRING_ELT ¤ËÎà»÷¤Î´Ø¿ô¤Ç¤¢¤ë¡£

´û¸¤Î¥³¡¼¥É¤òÊÑ´¹¤¹¤ë¤¿¤á¤Ë¤Ï¼¡¤ÎÃÖ¤­´¹¤¨¤ò¤»¤è¡£

Original Replacement
foo = VECTOR(bar)[i] foo = VECTOR_ELT(bar, i)
VECTOR(foo)[j] = bar SET_VECTOR_ELT(foo, j, bar)
foo = STRING(bar)[i] foo = STRING_ELT(bar, i)
STRING(foo)[j] = bar SET_STRING_ELT(foo, j, bar)

¿·¤·¤¤¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥óµ¡Ç½¤Ï SEXP ¤ò´Þ¤àÍ󤨤ÎÁ´¤Æ¤ÎÂåÆþ¤¬ SET_VECTOR_ELT ¤È¤¤¤Ã¤¿´Ø¿ô·Ðͳ ¤Ç¤Ê¤µ¤ì¤ë¤³¤È¤òÍ׵᤹¤ë¡£¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î R ¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ï¤³¤ì¤é¤ÎÍó¤òľÀÜÊѹ¹¤¹¤ë¥Ð¥¤¥Ê¥ê ¥³¡¼¥É¤ò´Þ¤à¤«¤âÃΤì¤Ê¤¤¡£¤³¤¦¤·¤¿¥Ñ¥Ã¥±¡¼¥¸¤ÏºÆ¥³¥ó¥Ñ¥¤¥ë¤·¡¢ºÆ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤½¤¦¤·¤Ê¤¤¤È¡¢¥á¥â¥ê¡¼´ÉÍýµ¡Ç½¤òº®Í𤵤»¡¢¥á¥â¥ê¡¼¤Ø¤ÎÃßÀѤ¬¤ª¤«¤·¤¯¤Ê¤ë·ë²Ì¤ò¾·¤¯¡£

R ¤Î 1.x ·ÏÎó¤Ë¤ª¤¤¤ÆºÇÂç¤Î¸ß´¹À­¤òãÀ®¤¹¤ë¤¿¤á¤Ë¡¢¥¢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤Ï¼¡¤Î·Á¤Î¾ò·ï¼°¤ò»È¤¦¤«

 
#if R_VERSION >= R_Version(1, 2, 0)
  new-style-code
#else
  old-style-code
#endif

¤â¤·¤¯¤Ï¡¢ÉÔÍѤʥ³¡¼¥É¤Î½ÅÊ£¤òÈò¤±¤ë¤¿¤á¡¢¿·¤·¤¤¥¹¥¿¥¤¥ë¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤È¶¦¤Ë¼¡¤Î¥³¡¼¥É¤ò´Þ¤à ¸Ä¿ÍŪ¤Ê ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò»È¤¦¤Î¤¬¤è¤ê¹¥¤Þ¤·¤¤¡§

 
#if R_VERSION < R_Version(1, 2, 0)
# define STRING_ELT(x,i)        (STRING(x)[i])
# define VECTOR_ELT(x,i)        (VECTOR(x)[i])
# define SET_STRING_ELT(x,i,v)  (STRING(x)[i] = (v))
# define SET_VECTOR_ELT(x,i,v)  (VECTOR(x)[i] = (v))
#endif

¤è¤ê°ìÁؤÎÊѹ¹¤¬¸À¸ì¥ª¥Ö¥¸¥§¥¯¥È¤ò½èÍý¤¹¤ë¥³¡¼¥É¤ÇɬÍפˤʤ롣


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.7 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .Call ¤È .External

¤³¤ÎÀá¤Ç¤Ï R/C ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î¾ÜºÙ¤òµÄÏÀ¤¹¤ë¡£

¤³¤ì¤éÆó¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ï¤Û¤ÜƱ¤¸µ¡Ç½¤ò»ý¤Ä¡£.Call ¤Ï¥Ð¡¼¥¸¥ç¥ó 4.0 ¤Î \S ¤Î Ʊ̾¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ë½àµò¤·¡¢.External ¤Ï .Internal ¤Ë´ð¤Å¤¯¡£ .External ¤Ï¤è¤êÊ£»¨¤Ç¤¢¤ë¤¬¡¢¸Ä¿ô¤¬ÊѤï¤êÆÀ¤ë°ú¿ô¤òµö¤¹¡£

4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.7.1 .Call ¤Î¸Æ¤Ó½Ð¤·

²æ¡¹¤ÎÍ­¸Â¾ö¤ß¹þ¤ß¤ÎÎã¤ò¡¢À褺 `Rdefines.h' ¥Þ¥¯¥í¤Ë¤è¤ê¡¢.Call ¤ò»È¤¦¤è¤¦¤ËÊѹ¹¤·¤è¤¦¡£ R ¤Ë¤ª¤±¤ë¸Æ¤Ó½Ð¤·´Ø¿ô¤Ï

 
conv <- function(a, b) .Call("convolve2", a, b)

¤³¤ì¤Ï¤³¤ì°Ê¾å´Êñ¤Ë¤Ê¤é¤Ê¤¤Äø´Êñ¤Ç¤¢¤ë¤¬¡¢Àè¤Ç¸«¤ë¤è¤¦¤ËÁ´¤Æ¤Î·¿¤Î¸¡ºº¤ò C ¥³¡¼¥É¤Ë¼¡¤Î¤è¤¦¤Ë ÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤

 
#include <R.h>
#include <Rdefines.h>

SEXP convolve2(SEXP a, SEXP b)
{
  int i, j, na, nb, nab;
  double *xa, *xb, *xab;
  SEXP ab;

  PROTECT(a = AS_NUMERIC(a));
  PROTECT(b = AS_NUMERIC(b));
  na = LENGTH(a); nb = LENGTH(b); nab = na + nb - 1;
  PROTECT(ab = NEW_NUMERIC(nab));
  xa = NUMERIC_POINTER(a); xb = NUMERIC_POINTER(b);
  xab = NUMERIC_POINTER(ab);
  for(i = 0; i < nab; i++) xab[i] = 0.0;
  for(i = 0; i < na; i++)
    for(j = 0; j < nb; j++) xab[i + j] += xa[i] * xb[j];
  UNPROTECT(3);
  return(ab);
}

S ¤Î¥Ð¡¼¥¸¥ç¥ó 4 ¤È°Û¤Ê¤ê¡¢¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î R ÈǤ϶¯À©ÊÑ´¹¤¬²Äǽ¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤·¡¢¤½¤ì¤¬ ¼ºÇÔ¤¹¤ë¤È¥¨¥é¡¼¤òµ¯¤³¤¹¡£¶¯À©ÊÑ´¹¤Î·ë²Ì·ç»Ãͤ¬»ý¤Á¹þ¤Þ¤ì¤ë¤È·Ù¹ð¤¬½Ð¤µ¤ì¤ë¡£ ¤³¤³¤Ç¤Ï¶¯À©ÊÑ´¹¤¬ C ¥³¡¼¥É¤Ç¹Ô¤ï¤ì¤ëÎã¤ò¼¨¤·¤¿¤¬¡¢É¬Íפʶ¯À©ÊÑ´¹¤ò R ¥³¡¼¥É¤Ç ¹Ô¤¦Êý¤¬¤·¤Ð¤·¤Ð¤è¤ê´Êñ¤Ç¤¢¤ë¡£

¼¡¤Ë R ¤ÎÆâÉô¥¹¥¿¥¤¥ë¤ò¤¢¤²¤ë¡£C ¥³¡¼¥É¤À¤±¤¬Êѹ¹¤µ¤ì¤ë¡£

 
#include <R.h>
#include <Rinternals.h>

SEXP convolve2(SEXP a, SEXP b)
{
  int i, j, na, nb, nab;
  double *xa, *xb, *xab;
  SEXP ab;

  PROTECT(a = coerceVector(a, REALSXP));
  PROTECT(b = coerceVector(b, REALSXP));
  na = length(a); nb = length(b); nab = na + nb - 1;
  PROTECT(ab = allocVector(REALSXP, nab));
  xa = REAL(a); xb = REAL(b);
  xab = REAL(ab);
  for(i = 0; i < nab; i++) xab[i] = 0.0;
  for(i = 0; i < na; i++)
    for(j = 0; j < nb; j++) xab[i + j] += xa[i] * xb[j];
  UNPROTECT(3);
  return(ab);
}

¤³¤ì¤ÏÁ°¤ÈÁ´¤¯Æ±¤¸Íͤ˸ƤӽФ¹¤³¤È¤¬½ÐÍè¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.7.2 .External ¤Î¸Æ¤Ó½Ð¤·

Ʊ¤¸Îã¤Ç .External ¤òÀâÌÀ¤¹¤ë¡£R ¥³¡¼¥É¤ÎÊѹ¹ÅÀ¤Ï .Call ¤ò .External ¤ËÊѤ¨¤ë¤À¤±¤Ç¤¢¤ë¡£

 
conv <- function(a, b) .External("convolveE", a, b)

¤·¤«¤·¤Ê¤¬¤é¡¢¼ç¤ÊÊѹ¹ÅÀ¤Ï°ú¿ô¤¬ C ¥³¡¼¥É¤Ë°ú¤­ÅϤµ¤ì¤ë»ÅÊý¤Ç¤¢¤ê¡¢ ¤³¤ó¤É¤Ïñ°ì¤Î SEXP ¤À¤±¤Ç¤¢¤ë¡£C ¥³¡¼¥É¤ÎÍ£°ì¤Ä¤ÎÊѹ¹¤Ï°ú¿ô¤ò¤É¤¦½èÍý¤¹¤ë¤« ¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£

 
#include <R.h>
#include <Rinternals.h>

SEXP convolveE(SEXP args)
{
  int i, j, na, nb, nab;
  double *xa, *xb, *xab;
  SEXP a, b, ab;

  PROTECT(a = coerceVector(CADR(args), REALSXP));
  PROTECT(b = coerceVector(CADDR(args), REALSXP));
    ...
}

ºÆ¤Ó°ú¿ô¤òÊݸ¤ëɬÍפÏ̵¤¤¡£¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î R ¦¤Ç¤Ï¤½¤ì¤é¤Ï´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë ¥ª¥Ö¥¸¥§¥¯¥È¤À¤«¤é¤Ç¤¢¤ë¡£¼¡¤Î¥Þ¥¯¥í

 
  first = CADR(args);
  second = CADDR(args);
  third = CADDDR(args);
  fourth = CAD4R(args);

¤ÏºÇ½é¤Î»Í¤Ä¤Î°ú¿ô¤Ë¥¢¥¯¥»¥¹¤¹¤ë´ÊÊØ¤ÊÊýË¡¤òÍ¿¤¨¤ë¡£¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢ CDR ¤ª¤è¤Ó CAR ¥Þ¥¯¥í¤ò

 
  args = CDR(args); a = CAR(args);
  args = CDR(args); b = CAR(args);

¤ÎÍͤ˻Ȥ¦¤³¤È¤¬½ÐÍè¡¢¤³¤ì¤ÏÌÀ¤é¤«¤Ë¤É¤ì¤À¤±¤Ç¤â¿¤¯¤Î°ú¿ô¤ò¼è¤ê½Ð¤¹¤³¤È¤ò²Äǽ¤Ë¤¹¤ë (¤·¤«¤·¤Ê¤¬¤é¡¢ .Call ¤Ï65¸Ä¤È¤¤¤¦·è¤·¤Æ¾¯¤Ê¤¤¿ô¤Ç¤Ï¤Ê¤¤¤¬¸Â³¦¤ò»ý¤Ä)¡£

¤â¤Ã¤ÈÌò¤ËΩ¤Ä¤³¤È¤È¤·¤Æ¡¢.External ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ï²ÄÊѸĿô¤Î°ú¿ô¤ò»ý¤Ä¸Æ¤Ó½Ð¤·¤ò½èÍý¤¹¤ë ´Êñ¤ÊÊýË¡¤òÄ󶡤¹¤ë¡£¤Ê¤¼¤Ê¤é length(args) ¤¬¶¡µë¤µ¤ì¤ë°ú¿ô¤Î¿ô(¤½¤Î¤¦¤Á¡¢ºÇ½é¤Î¤â¤Î¤Ï̵»ë¤µ¤ì¤ë) ¤òÍ¿¤¨¤ë¤«¤é¡£¼ÂºÝ¤Î°ú¿ô¤ËÍ¿¤¨¤é¤ì¤¿Ì¾Á° (`tags') ¤òÃΤꤿ¤¯¤Ê¤ë¤«¤âÃΤì¤Ê¤¤¡£ ¤³¤ì¤Ï¡¢TAG ¥Þ¥¯¥í¤È¼¡¤ÎÎã¤Î¤è¤¦¤Ê¤³¤È¤ò¹Ô¤¨¤Ð²Äǽ¤Ë¤Ê¤ë¡£ ¤³¤ì¤Ï¡¢°ú¿ô¤Î¤Ê¤Þ¤¨¤È¡¢¤â¤·¤½¤ì¤¬¤¬¥Ù¥¯¥È¥ë·¿¤Ç¤¢¤ì¤Ð¤½¤ÎºÇ½é¤ÎÃͤò°õ»ú¤¹¤ë¡£

 
#include "R_ext/PrtUtil.h"

SEXP showArgs(SEXP args)
{
  int i, nargs;
  Rcomplex cpl;
  char *name;

  if((nargs = length(args) - 1) > 0) {
    for(i = 0; i < nargs; i++) {
      args = CDR(args);
      name = CHAR(PRINTNAME(TAG(args)));
      switch(TYPEOF(CAR(args))) {
      case REALSXP:
        Rprintf("[%d] '%s' %f\n", i+1, name, REAL(CAR(args))[0]);
        break;
      case LGLSXP:
      case INTSXP:
        Rprintf("[%d] '%s' %d\n", i+1, name, INTEGER(CAR(args))[0]);
        break;
      case CPLXSXP:
        cpl = COMPLEX(CAR(args))[0];
        Rprintf("[%d] '%s' %f + %fi\n", i+1, name, cpl.r, cpl.i);
        break;
      case STRSXP:
        Rprintf("[%d] '%s' %s\n", i+1, name,
               CHAR(STRING_ELT(CAR(args), 0)));
        break;
      default:
        Rprintf("[%d] '%s' R type\n", i+1, name);
      }
    }
  }
  return(R_NilValue);
}

¤³¤ì¤Ï¼¡¤Î wrapper ´Ø¿ô¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤»¤ë¡£

 
showArgs <- function(...) .External("showArgs", ...)

¤³¤Î¥¹¥¿¥¤¥ë¤Î¥×¥í¥°¥é¥ß¥ó¥°¤ÏÊØÍø¤Ç¤¢¤ë¤¬É¬ÍפǤϤʤ¤¤³¤È¤òÃí°Õ¤·¤è¤¦¡£ ¤Ê¤¼¤Ê¤é¤â¤¦°ì¤Ä¤Î¼¡¤Î¥¹¥¿¥¤¥ë¤¬²Äǽ¤À¤«¤é¤Ç¤¢¤ë¡£

 
showArgs <- function(...) .Call("showArgs1", list(...))


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ

.C ¸Æ¤Ó½Ð¤·¤¬¹Ô¤¦¥¨¥é¡¼¸¡ºº¤Î°ì¤Ä¤¬ (NAOK ¤¬¿¿¤Ç¤Ê¤¤¸Â¤ê) ·ç»ÃÍ (NA) ¤È IEEE ÆÃ¼ìÃÍ (Inf, -Inf ¤½¤·¤Æ NaN) ¤Î¸¡ºº¤Ç¤¢¤ê¡¢ ¤â¤·°ì¤Ä¤Ç¤â¸«ÉÕ¤«¤ì¤Ð¥¨¥é¡¼¤òÍ¿¤¨¤ë¡£.Call ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ë¤è¤ê¤³¤ì¤é¤Ï²æ¡¹¤Î¥³¡¼¥É¤Ë°ú¤­ÅϤµ¤ì¤ë¡£ ¤³¤ÎÎã¤Ç¤Ï IEEE »»½Ñ¤¬Å¬Àµ¤Ê½èÍý¤ò¹Ô¤¦¤Î¤ÇÆÃ¼ìÃͤÏÌäÂê¤ò°ú¤­µ¯¤³¤µ¤Ê¤¤¡£ ¸½ºß¤Î°Ü¿¢¤Ç¤Ï NA ¤âÌäÂê¤òµ¯¤³¤µ¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢¤½¤ì¤Ï NaN ¤Î°ì¤Ä¤Î·¿¤À¤«¤é¡£ ¤·¤«¤·¡¢¤½¤¦¤·¤¿¾ÜºÙ¤ËÍê¤ë¤³¤È¤Ï¸­ÌÀ¤Ç¤Ï¤Ê¤¤¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢`R.h' ¤Ë¤è¤ê¼è¤ê¹þ¤Þ¤ì¤ë `Arith.h' Ãæ¤ÇÄêµÁ¤µ¤ì¤¿¥Þ¥¯¥í¤òÍѤ¤ NA ¤ò½èÍý¤¹¤ë¤è¤¦¤Ë ¥³¡¼¥É¤ò½ñ¤­Ä¾¤·¤Æ¤ß¤è¤¦¡£

¥³¡¼¥É¤ÎÊѹ¹¤Ï convolve2 ¤È convolveE ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤ª¤Ê¤¸¤Ç¤¢¤ë:

 
    ...
  for(i = 0; i < na; i++)
    for(j = 0; j < nb; j++)
        if(ISNA(xa[i]) || ISNA(xb[j]) || ISNA(xab[i + j]))
          xab[i + j] = NA_REAL;
        else
          xab[i + j] += xa[i] * xb[j];
    ...

ISNA ¥Þ¥¯¥í¤È¡¢Æ±ÍͤΥޥ¯¥í ISNAN (NaN ¤È NA ¤ò¸¡ºº) ¤È R_FINITE (NA ¤ÈÁ´¤Æ¤ÎÆÃ¼ìÃͤǵ¶¤È¤Ê¤ë) ¤Ï double ·¿¤Î¿ôÃͤˤÀ¤±Å¬ÍѤµ¤ì¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£ À°¿ô¡¢ÏÀÍýÃÍ ¤½¤·¤ÆÊ¸»úÎó¤ÏÄê¿ô NA_INTEGER, NA_LOGICAL ¤½¤·¤Æ NA_STRING ¤ÈÅù¤·¤¤¤«¤É¤¦¤«¤Ç ¸¡ºº¤Ç¤­¤ë¡£¤³¤ì¤é¤È NA_REAL ¤Ï R ¤Î¥Ù¥¯¥È¥ë¤ò NA ¤ËÀßÄꤹ¤ë¤Î¤Ë»È¤¨¤ë¡£

Äê¿ô R_NaN, R_PosInf, R_NegInf ¤½¤·¤Æ R_NaReal ¤Ï double ¤òÆÃ¼ìÃͤËÀßÄꤹ¤ë¤³¤È¤Ë»È¤¨¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.8 R ¤Îɽ¸½¼°¤ò C ¤«¤éɾ²Á¤¹¤ë

Àè¤Ë call_R ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤¬ R ¤Îɽ¸½¼°¤ò C ¥³¡¼¥É¤«¤éɾ²Á¤¹¤ë¤Î¤Ë»È¤¨¤ë¤³¤È¤ò Ãí°Õ¤·¤¿¡£¤·¤«¤·¡¢¸½ºß¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ï¤â¤Ã¤È»È¤¤¤ä¤¹¤¤¡£²æ¡¹¤¬»È¤¦¼ç¤Ê´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë

 
SEXP eval(SEXP expr, SEXP rho);

¤³¤ì¤Ï R ¥¤¥ó¥¿¥×¥ê¥¿¤Î¥³¡¼¥É eval(expr, envir = rho) ¤ÈƱÃͤǤ¢¤ë¤¬¡¢ findVar, defineVar ¤½¤·¤Æ findFun (¸¡º÷Âоݤò´Ø¿ô¤ËÀ©¸Â) ¤ò Ʊ¤¸¤è¤¦¤Ë»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£

¤³¤ì¤¬¤É¤Î¤è¤¦¤Ë»È¤¨¤ë¤«¤ò¸«¤ë¤¿¤á¤Ë¡¢É½¸½¼°¤ËÂФ¹¤ë lapply ¤ÎÆâÉôŪ¤Êñ½ãÈǤò¹Í¤¨¤Æ¤ß¤ë¡£ ¤³¤ì¤Ï¼¡¤Î¤è¤¦¤Ë»ÈÍѤǤ­

 
a <- list(a = 1:5, b = rnorm(10), test = runif(100))
.Call("lapply", a, quote(sum(x)), new.env())

°Ê²¼¤Î C ¥³¡¼¥É¤ò»ý¤Ä

 
SEXP lapply(SEXP list, SEXP expr, SEXP rho)
{
  int i, n = length(list);
  SEXP ans;

  if(!isNewList(list)) error("`list' must be a list");
  if(!isEnvironment(rho)) error("`rho' should be an environment");
  PROTECT(ans = allocVector(VECSXP, n));
  for(i = 0; i < n; i++) {
    defineVar(install("x"), VECTOR_ELT(list, i), rho);
    SET_VECTOR_ELT(ans, i, eval(expr, rho));
  }
  setAttrib(ans, R_NamesSymbol, getAttrib(list, R_NamesSymbol));
  UNPROTECT(1);
  return(ans);
}

¤â¤·É½¸½¼°¤Ç¤Ï¤Ê¤¯´Ø¿ô¤Ë»È¤¨¤¿¤é¡¢¤â¤Ã¤È lapply ¤Ë¶á¤¯¤Ê¤ë¤Ç¤¢¤í¤¦¡£ ¤³¤ì¤ò¹Ô¤¦°ì¤Ä¤ÎÊýË¡¤Ï¼¡¤ÎÎã¤Ë¤ª¤±¤ë R ¥¤¥ó¥¿¥×¥ê¥¿¥³¡¼¥É¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£ ¤·¤«¤·¡¢(¤â¤·¾¯¡¹Ê¬¤«¤ê¤Ë¤¯¤¤¤Ê¤é)¤³¤ì¤ò C ¥³¡¼¥ÉÃæ¤Ç¹Ô¤¦¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£ ¤Ä¤®¤Ï `src/main/optimize.c' Ãæ¤Î¥³¡¼¥É¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¡£

 
SEXP lapply2(SEXP list, SEXP fn, SEXP rho)
{
  int i, n = length(list);
  SEXP R_fcall, ans;

  if(!isNewList(list)) error("`list' must be a list");
  if(!isFunction(fn)) error("`fn' must be a function");
  if(!isEnvironment(rho)) error("`rho' should be an environment");
  PROTECT(R_fcall = lang2(fn, R_NilValue));
  PROTECT(ans = allocVector(VECSXP, n));
  for(i = 0; i < n; i++) {
    SETCADR(R_fcall, VECTOR_ELT(list, i));
    SET_VECTOR_ELT(ans, i, eval(R_fcall, rho));
  }
  setAttrib(ans, R_NamesSymbol, getAttrib(list, R_NamesSymbol));
  UNPROTECT(2);
  return(ans);
}

¤³¤ì¤Ï¼¡¤Î¤è¤¦¤Ë»È¤¦

 
.Call("lapply2", a, sum, new.env())

´Ø¿ô lang2 ¤ÏÆó¤Ä¤ÎÍ×ÁǤ«¤é¤Ê¤ë¼Â¹Ô²Äǽ¤Ê `¥ê¥¹¥È' ¤òºî¤ê¤À¤¹¤¬¡¢ ¤·¤«¤·¤³¤ì¤òÍý²ò¤¹¤ë¤Ë¤Ï LISP É÷¤Î¸À¸ì¤ÎÃ챤òɬÍפȤ¹¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.8.1 ÎíÅÀ¤ò¸«ÉÕ¤±¤ë

¤³¤ÎÀá¤Ç¤Ï°ÊÁ° call_R¤Î `demos/dynload' (Becker, Chambers & Wilks (1988) Ãæ¤Î call_S¤Ë´ð¤Å¤¯) ¤Ë¤¢¤Ã¤¿°ìÊÑ¿ô´Ø¿ô¤ÎÎíÅÀ¤ò¸«ÉÕ¤±¤ëÎã¤òºÆ»ÈÍѤ¹¤ë¡£¤³¤ì¤ÏºÇÁáÇѻߤµ¤ì¤¿ demo(dynload) ¤ÎÃæ¤Ç call_R ¤ÎÎã¤È¤·¤Æ»È¤ï¤ì¤Æ¤¤¤¿¤â¤Î¤Ç¤¢¤ë¡£R ¥³¡¼¥É¤ÈÎã¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¢¤ë

 
zero <- function(f, guesses, tol = 1e-7) {
  f.check <- function(x) {
    x <- f(x)
    if(!is.numeric(x)) stop("Need a numeric result")
    as.double(x)
  }
  .Call("zero", body(f.check), as.double(guesses), as.double(tol),
        new.env())
}

cube1 <- function(x) (x^2 + 1) * (x - 1.5)
zero(cube1, c(0, 5))

¤³¤³¤Çº£²ó¤Ï¶¯À©ÊÑ´¹¤È¥¨¥é¡¼¸¡ºº¤ò R ¥³¡¼¥É¤ÎÃæ¤Ç¹Ô¤Ã¤Æ¤¤¤ë¡£ C ¥³¡¼¥É¤Ï¼¡¤Î¤è¤¦¤Ç¤¢¤ë

 
SEXP mkans(double x)
{
    SEXP ans;
    PROTECT(ans = allocVector(REALSXP, 1));
    REAL(ans)[0] = x;
    UNPROTECT(1);
    return ans;
}

double feval(double x, SEXP f, SEXP rho)
{
    defineVar(install("x"), mkans(x), rho);
    return(REAL(eval(f, rho))[0]);
}

SEXP zero(SEXP f, SEXP guesses, SEXP stol, SEXP rho)
{
    double x0 = REAL(guesses)[0], x1 = REAL(guesses)[1],
           tol = REAL(stol)[0];
    double f0, f1, fc, xc;

    if(tol <= 0.0) error("non-positive tol value");
    f0 = feval(x0, f, rho); f1 = feval(x1, f, rho);
    if(f0 == 0.0) return mkans(x0);
    if(f1 == 0.0) return mkans(x1);
    if(f0*f1 > 0.0) error("x[0] and x[1] have the same sign");
    for(;;) {
        xc = 0.5*(x0+x1);
        if(fabs(x0-x1) < tol) return  mkans(xc);
        fc = feval(xc, f, rho);
        if(fc == 0) return  mkans(xc);
        if(f0*fc > 0.0) {
            x0 = xc; f0 = fc;
        } else {
            x1 = xc; f1 = fc;
        }
    }
}

C ¥³¡¼¥É¤ÏËܼÁŪ¤Ë call_R ÈÇ¤ÈÆ±¤¸¤Ç¡¢Ã±¤Ë double ¤«¤é SEXP ¤Ø¤ÎÊÑ´¹¤È f.check ¤Îɾ²Á¤Î¤¿¤á¤Ë´ö¤Ä¤«¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.8.2 ¿ôÃÍÈùʬ¤Î·×»»

.External ¤ÎÍÑË¡¤òÀâÌÀ¤¹¤ë¤¿¤á¤Ë¾¯¤·Ä¹¤¤Îã(Saikat DebRoy ¤Ë¤è¤ë)¤ò»È¤ª¤¦¡£ ¤³¤ì¤Ï¿ôÃÍÈùʬ¤ò·×»»¤¹¤ë¤â¤Î¤Ç¡¢¥¤¥ó¥¿¡¼¥×¥ê¥¿ R ¥³¡¼¥É¤ò»È¤¨¤Ð¸úΨŪ¤Ë¹Ô¤¨¤¿¤Ç¤¢¤í¤¦¤¬¡¢ ¤·¤«¤·¤è¤êÂ絬ÌÏ¤Ê C ·×»»Ãæ¤Ç»È¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

¥¤¥ó¥¿¡¼¥×¥ê¥¿ R ÈǤÈÎã¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë

 
numeric.deriv <- function(expr, theta, rho=sys.frame(sys.parent()))
{
  eps <- sqrt(.Machine$double.eps)
  ans <- eval(substitute(expr), rho)
  grad <- matrix(,length(ans), length(theta),
                 dimnames=list(NULL, theta))
  for (i in seq(along=theta)) {
    old <- get(theta[i], envir=rho)
    delta <- eps * min(1, abs(old))
    assign(theta[i], old+delta, envir=rho)
    ans1 <- eval(substitute(expr), rho)
    assign(theta[i], old, envir=rho)
    grad[, i] <- (ans1 - ans)/delta
  }
  attr(ans, "gradient") <- grad
  ans
}
omega <- 1:5; x <- 1; y <- 2
numeric.deriv(sin(omega*x*y), c("x", "y"))

¤³¤³¤Ç expr ¤Ïɽ¸½¼°¡¢theta ¤ÏÊÑ¿ô̾¤Îʸ»ú¥Ù¥¯¥È¥ë¡¢¤½¤·¤Æ rho ¤Ï»ÈÍѤ¹¤ë´Ä¶­¤Ç¤¢¤ë¡£

¥³¥ó¥Ñ¥¤¥ëÈÇ¤Ç¤Ï R ¤«¤é¤Î¸Æ½Ð¤·¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦

 
.External("numeric_deriv", expr, theta, rho)

»ÈÍÑÎã¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë

 
.External("numeric_deriv", quote(sin(omega*x*y)),
          c("x", "y"), .GlobalEnv)

ɽ¸½¼°¤ò°úÍÑÉä¤Ç°Ï¤ß¡¢É¾²Á¤µ¤ì¤ë¤Î¤òÃæ»ß¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£

°Ê²¼¤Ï´°Á´¤Ê C ¥³¡¼¥É¤ÇÀáËè¤ËÀâÌÀ¤µ¤ì¤ë¡£

 
#include <R.h> /* for DOUBLE_EPS */
#include <Rinternals.h>

SEXP numeric_deriv(SEXP args)
{
  SEXP theta, expr, rho, ans, ans1, gradient, par, dimnames;
  double tt, xx, delta, eps = sqrt(DOUBLE_EPS);
  int start, i, j;

  expr = CADR(args);
  if(!isString(theta = CADDR(args)))
    error("theta should be of type character");
  if(!isEnvironment(rho = CADDDR(args)))
    error("rho should be an environment");

  PROTECT(ans = coerceVector(eval(expr, rho), REALSXP));
  PROTECT(gradient = allocMatrix(REALSXP, LENGTH(ans), LENGTH(theta)));

  for(i = 0, start = 0; i < LENGTH(theta); i++, start += LENGTH(ans)) {
    PROTECT(par = findVar(install(CHAR(STRING_ELT(theta, i))), rho));
    tt = REAL(par)[0];
    xx = fabs(tt);
    delta = (xx < 1) ? eps : xx*eps;
    REAL(par)[0] += delta;
    PROTECT(ans1 = coerceVector(eval(expr, rho), REALSXP));
    for(j = 0; j < LENGTH(ans); j++)
      REAL(gradient)[j + start] =
        (REAL(ans1)[j] - REAL(ans)[j])/delta;
    REAL(par)[0] = tt;
    UNPROTECT(2); /* par, ans1 */
  }

  PROTECT(dimnames = allocVector(VECSXP, 2));
  SET_VECTOR_ELT(dimnames, 1,  theta);
  dimnamesgets(gradient, dimnames);
  setAttrib(ans, install("gradient"), gradient);
  UNPROTECT(3); /* ans  gradient  dimnames */
  return ans;
}

°ú¿ô¤ò½èÍý¤¹¤ë¥³¡¼¥É¤Ï

 
  expr = CADR(args);
  if(!isString(theta = CADDR(args)))
    error("theta should be of type character");
  if(!isEnvironment(rho = CADDDR(args)))
    error("rho should be an environment");

theta ¤È rho ¤¬Àµ¤·¤¤·¿¤Ç¤¢¤ë¤³¤È¤ò¸¡ºº¤·¤¿¤¬¡¢ expr ¤Î·¿¤Î¸¡ºº¤ò¤·¤Ê¤¤¤³¤È¤òÃí°Õ¤·¤è¤¦¡£¤³¤ì¤Ï eval ¤Ï EXPRSXP °Ê³°¤Î¿¤¯¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ò½èÍý¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£ ²æ¡¹¤¬¹Ô¤¨¤ëÍ­ÍѤʶ¯À©ÊÑ´¹¤Ï̵¤¯¡¢¤â¤·°ú¿ô¤¬Àµ¤·¤¤¥â¡¼¥É¤Ç̵¤±¤ì¤Ð¼Â¹Ô¤Ï¥¨¥é¡¼ ¥á¥Ã¥»¡¼¥¸¤È¤È¤â¤ËÃæÃǤ¹¤ë¤Ç¤¢¤í¤¦¡£

¥³¡¼¥É¤ÎºÇ½é¤Î¥¹¥Æ¥Ã¥×¤Ï´Ä¶­ rho Ãæ¤Ç¼¡¤Î¤è¤¦¤Ëɽ¸½¼°¤òɾ²Á¤¹¤ë¤³¤È¤Ç¤¢¤ë

 
  PROTECT(ans = coerceVector(eval(expr, rho), REALSXP));

¼¡¤Ë·×»»¤µ¤ì¤¿Æ³´Ø¿ôÍѤ˥á¥â¥ê¡¼¥¹¥Ú¡¼¥¹¤ò³ÎÊݤ¹¤ë

 
  PROTECT(gradient = allocMatrix(REALSXP, LENGTH(ans), LENGTH(theta)));

allocMatrix ¤Ø¤ÎºÇ½é¤Î°ú¿ô¤Ï¹ÔÎó¤Î SEXPTYPE ¤òÍ¿¤¨¤ë¡£ ¤³¤³¤ÇɬÍ×¤Ê¤Î¤Ï REALSXP ¤Ç¤¢¤ë¡£Â¾¤ÎÆó¤Ä¤Î°ú¿ô¤Ï¹Ô¤ÈÎó¤Î¿ô¤Ç¤¢¤ë¡£

 
  for(i = 0, start = 0; i < LENGTH(theta); i++, start += LENGTH(ans)) {
    PROTECT(par = findVar(install(CHAR(STRING_ELT(theta, i))), rho));

¼¡¤Ë for ¥ë¡¼¥×¤ËÆþ¤ë¡£³Æ°ú¿ôËè¤Ë¥ë¡¼¥×¤ò¹Ô¤¦¡£for ¥ë¡¼¥×Ãæ¤Ç¤Ï¡¢ºÇ½é¤Ë STRSXP theta¤Î i ÈÖÌܤÎÍ×ÁǤËÂбþ¤¹¤ë¥·¥ó¥Ü¥ë¤òºî¤ê½Ð¤¹¡£ ¤³¤³¤Ç¡¢STRING_ELT(theta, i) ¤Ï STRSXP theta¤Î i ÈÖÌܤÎÍ×ÁÇ¤Ë ¥¢¥¯¥»¥¹¤¹¤ë¡£¥Þ¥¯¥í CHAR() ¤Ï¤½¤Î¼ÂºÝ¤Îʸ»úɽ¸½¤ò¼è¤ê½Ð¤·¡¢¥Ý¥¤¥ó¥¿¡¼¤ò ÊÖ¤¹¡£¤½¤ì¤«¤é̾Á°¤òÅÐÏ¿¤·¤½¤ÎÃͤò¸«½Ð¤¹¤¿¤á¤Ë findVar ¤ò»È¤¦¡£

 
    tt = REAL(par)[0];
    xx = fabs(tt);
    delta = (xx < 1) ? eps : xx*eps;
    REAL(par)[0] += delta;
    PROTECT(ans1 = coerceVector(eval(expr, rho), REALSXP));

ºÇ½é¤Ë¥Ñ¥é¥á¡¼¥¿¤ÎÃͤǤ¢¤ë¼Â¿ôÃͤò¼è¤ê½Ð¤·¡¢¿ôÃÍÈùʬ¤Î¶á»÷¤ËÍѤ¤¤é¤ì¤ëÁýʬ¤Ç¤¢¤ë ¥Ç¥ë¥¿Ãͤò·×»»¤¹¤ë¡£¤½¤ì¤«¤é¡¢par (´Ä¶­ rho Ãæ) Ãæ¤ËÊݴɤµ¤ì¤¿Ãͤò delta ¤ÇÃÖ¤­´¹¤¨¡¢ºÆ¤Ó´Ä¶­ rho Ãæ¤Ç expr ¤òɾ²Á¤¹¤ë¡£ ¤³¤³¤Ç¤ÏËÜÍè¤Î R ¤Î¥á¥â¥ê¡¼°ÌÃÖ¤òľÀÜÁàºî¤·¤Æ¤¤¤ë¤Î¤Ç¡¢R ¤¬Êѹ¹¤µ¤ì¤¿¥Ñ¥é¥á¡¼¥¿ ÃͤËÂФ¹¤ëɾ²Á¤ò¹Ô¤¦¡£

 
    for(j = 0; j < LENGTH(ans); j++)
      REAL(gradient)[j + start] =
        (REAL(ans1)[j] - REAL(ans)[j])/delta;
    REAL(par)[0] = tt;
    UNPROTECT(2);
  }

¼¡¤Ë¡¢¥°¥é¥Ç¥£¥¨¥ó¥È¹ÔÎó¤Î i ÈÖÌܤÎÎó¤ò·×»»¤¹¤ë¡£¤É¤Î¤è¤¦¤Ë¤½¤ì¤¬¥¢¥¯¥»¥¹¤µ¤ì¤ë¤«¤ò Ãí°Õ¤·¤è¤¦¡£R ¤Ï(FORTRAN ¤ÎÍͤË)¹ÔÎó¤òÎó½ç¤ËÊݴɤ¹¤ë¡£

 
  PROTECT(dimnames = allocVector(VECSXP, 2));
  SET_VECTOR_ELT(dimnames, 1, theta);
  dimnamesgets(gradient, dimnames);
  setAttrib(ans, install("gradient"), gradient);
  UNPROTECT(3);
  return ans;
}

À褺¥°¥é¥Ç¥£¥¨¥ó¥È¹ÔÎó¤ÎÎó̾¤ò²Ã¤¨¤ë¡£¤³¤ì¤Ï(VECSXP¤Ç¤¢¤ë)¥ê¥¹¥È¤ò Êݴɤ¹¤ë¤³¤È¤Ë¤è¤ê¤Ê¤µ¤ì¤ë¡£¥ê¥¹¥È¤ÎºÇ½é¤ÎÍ×ÁÇ¡¢¹Ô̾¡¢¤Ï NULL (´ûÄê)¤Ç¡¢¼¡¤ÎÍ×ÁÇ¡¢Îó̾¡¢ ¤Ï theta ¤ÈÀßÄꤵ¤ì¤ë¡£¤³¤Î¥ê¥¹¥È¤Ï¤½¤ì¤«¤é¥·¥ó¥Ü¥ë R_DimNamesSymbol ¤ò»ý¤Ä°À­ ¤È¤·¤ÆÀßÄꤵ¤ì¤ë¡£ºÇ¸å¤Ë¥°¥é¥Ç¥£¥¨¥ó¥È¹ÔÎó¤ò ans ¤Î¥°¥é¥Ç¥£¥¨¥ó¥È°À­¤ÇÀßÄꤷ¡¢¤½¤Î¾¤Î Êݸ¤ì¤¿¥á¥â¥ê¡¼°ÌÃÖ¤òÊݸî²ò½ü¤·¡¢Åú¤¨ ans ¤òÊÖ¤¹¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.9 ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°

ÃÙ¤«¤ìÁᤫ¤ì¥×¥í¥°¥é¥Þ¡¼¤Ï R ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°¤ò¤¹¤ëɬÍ×¤Ë Ç÷¤é¤ì¤ë¡£¤¤¤¯¤Ä¤«¤Î "¥È¥ê¥Ã¥¯" ¤¬Ìò¤ËΩ¤Ä¡£

4.9.1 ưŪ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¡¼¥ÉÃæ¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸«ÉÕ¤±¤ë  
4.9.2 ¥Ç¥Ð¥Ã¥°»þ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀººº  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.9.1 ưŪ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¡¼¥ÉÃæ¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸«ÉÕ¤±¤ë

¤Û¤È¤ó¤É¤Î¥³¥ó¥Ñ¥¤¥ë´Ä¶­¤Ç¡¢R ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ï¡¢ ¤½¤ì¤¬¼ÂºÝ¤ËÆÉ¤ß¹þ¤Þ¤ì¤ë¤Þ¤Ç¤½¤ÎÃæ¤Ë¥»¥Ã¥È¤µ¤ì¤¿ÃæÃÇÅÀ¤ò»ý¤Ä¤³¤È¤¬½ÐÍè¤Ê¤¤¡£ UNIX ²¼¤Ç¤½¤Î¤è¤¦¤ÊưŪ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¡¼¥É¤ËÂФ¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥¬¡¼¤ò »È¤¦¤¿¤á¤Ë¤Ï°Ê²¼¤òÍѤ¤¤ë

Windows ²¼¤Ç¤Ï R ¤Î engine ¤Ï¤½¤ì¼«¿È DLL Ãæ¤Ë¤¢¤ê¡¢¼ê½ç¤Ï

Windows ¤Ï¿®¹æ¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤ò¤Û¤È¤ó¤É»ý¤Ã¤Æ¤ª¤é¤º¡¢¥Ç¥Ð¥Ã¥¬¡¼²¼¤Ç¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¡¢ ¤½¤ì¤òÃæÃǤ¹¤ë¤¿¤á¤Ë°ì»þÄä»ß¿®¹æ¤òÁ÷¤ê¡¢¥Ç¥Ð¥Ã¥¬¡¼¤ËÀ©¸æ¤òÌ᤹¤³¤È¤Ï¤¢¤ë¼ï¤Î¥Ç¥Ð¥Ã¥¬¡¼ ¤Ç¤Î¤ß²Äǽ¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.9.2 ¥Ç¥Ð¥Ã¥°»þ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀººº

R ¥ª¥Ö¥¸¥§¥Ã¥¯¥È¤ò¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤«¤éõ¤¹´ðËܤϴؿô PrintValue(SEXP s) ¤Ç¤¢¤ê¡¢¤³¤ì¤Ï s ¤¬»Ø¤·¼¨¤¹ R ¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¼¨¤¹¤ë Àµµ¬¤Î R ¤Îɽ¼¨µ¡¹½¤ò»È¤¦¡£¤â¤·¤¯¤Ï¤è¤ê³Î¼Â¤ÊÊýË¡¤È¤·¤Æ¤Ï `objects' ¤À¤±¤òɽ¼¨¤¹¤ë R_PV(SEXP s) ¤ò»È¤¦¡£

PrintValue ¤ò¤Ä¤«¤¦°ì¤Ä¤Î¾ì¹ç¤Ï¥Ç¥Ð¥Ã¥°ÍѤ˥³¡¼¥É¤ËŬÅö¤Ê¸Æ¤Ó½Ð¤·¤òÁÞÆþ¤¹¤ë ¤³¤È¤Ç¤¢¤ë¡£

¤â¤¦°ì¤Ä¤ÎÊýË¡¤Ï R_PV ¤ò¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥¬¡¼¤«¤é¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¢¤ë¡£ (PrintValue ¤Ï Rf_PrintValue ¤È¤·¤Æ±£Êäµ¤ì¤Æ¤¤¤ë¡£) Î㤨¤Ð¡¢ gdb ¤«¤é¼¡¤Î¤è¤¦¤Ë»È¤¦

 
(gdb) p R_PV(ab)

¤³¤³¤Ç¥ª¥Ö¥¸¥§¥¯¥È ab ¤Ï¾ö¤ß¹þ¤ß¤ÎÎ㤫¤é¼è¤Ã¤¿¤â¤Î¤Ç¡¢Å¬Åö¤ÊÃæÃÇÅÀ¤ò¾ö¤ß¹þ¤ß¤Î C ¥³¡¼¥É¤Ë ÃÖ¤¯¡£

Ǥ°Õ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ò¸¡ºº¤¹¤ë¤Ë¤Ï¡¢¤â¤¦¾¯¤·¹©Éפ¬¤¬É¬Íפˤʤ롣 Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤·¤è¤¦

 
R> DF <- data.frame(a = 1:3, b = 4:6)

ÃæÃÇÅÀ¤ò do_get ¤ËÃÖ¤­¡¢R ¤Î¥×¥í¥ó¥×¥È¤Ë get("DF") ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢ DF ¤Î¥á¥â¥êÃæ¤Î¥¢¥É¥ì¥¹¤òÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£Î㤨¤Ð

 
Value returned is $1 = (SEXPREC *) 0x40583e1c
(gdb) p *$1
$2 = {
  sxpinfo = {type = 19, obj = 1, named = 1, gp = 0,
    mark = 0, debug = 0, trace = 0, = 0},
  attrib = 0x40583e80,
  u = {
    vecsxp = {
      length = 2,
      type = {c = 0x40634700 "0>X@D>X@0>X@", i = 0x40634700,
        f = 0x40634700, z = 0x40634700, s = 0x40634700},
      truelength = 1075851272,
    },
    primsxp = {offset = 2},
    symsxp = {pname = 0x2, value = 0x40634700, internal = 0x40203008},
    listsxp = {carval = 0x2, cdrval = 0x40634700, tagval = 0x40203008},
    envsxp = {frame = 0x2, enclos = 0x40634700},
    closxp = {formals = 0x2, body = 0x40634700, env = 0x40203008},
    promsxp = {value = 0x2, expr = 0x40634700, env = 0x40203008}
  }
}

(¤è¤ê²ÄÆÉÀ­¤ò¹â¤á¤¿¥Ç¥Ð¥Ã¥¬¤Î½ÐÎÏ)¡£

R_PV() ¤òÍѤ¤¤Æ SEXP ¤ÎÍÍ¡¹¤ÊÍ×ÁǤÎÃͤò"¶ãÌ£"¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£Î㤨¤Ð

 
(gdb) p R_PV($1->attrib)
$names
[1] "a" "b"

$row.names
[1] "1" "2" "3"

$class
[1] "data.frame"

$3 = void

Âбþ¤¹¤ë¾ðÊó¤¬Àµ³Î¤Ë¤Ï¤É¤³¤ËÊݴɤµ¤ì¤Æ¤¤¤ë¤«¤ò¸«½Ð¤¹¤¿¤á¤Ë¤Ï¡¢ "¤è¤êÀºÌ¯¤Ë"¹Ô¤¦É¬Íפ¬¤¢¤ë:

 
(gdb) set $a = $1->attrib
(gdb) p $a->u.listsxp.tagval->u.symsxp.pname->u.vecsxp.type.c
$4 = 0x405d40e8 "names"
(gdb) p $a->u.listsxp.carval->u.vecsxp.type.s[1]->u.vecsxp.type.c
$5 = 0x40634378 "b"
(gdb) p $1->u.vecsxp.type.s[0]->u.vecsxp.type.i[0]
$6 = 1
(gdb) p $1->u.vecsxp.type.s[1]->u.vecsxp.type.i[1]
$7 = 5


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. R ¤Î API: C ¥³¡¼¥É¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È

5.1 ¥á¥â¥ê³ä¤êÅö¤Æ  
5.2 ¥¨¥é¡¼½èÍý  
5.3 Íð¿ôÀ¸À®  
5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ  
5.5 ɽ¼¨  
5.6 FORTRAN ¤«¤é C ¤ò¸Æ¤Ö¡¢¤Þ¤¿¤½¤ÎµÕ  
5.7 ¿ôÃͲòÀÏ¥µ¥Ö¥ë¡¼¥Á¥ó  
5.8 ¾®Æ»¶ñ´Ø¿ô  
5.9 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤È¥Ð¡¼¥¸¥ç¥ó¾ðÊó  
5.10 ¤³¤ì¤é¤Î´Ø¿ô¤ò¼«Ê¬¼«¿È¤Î C ¥³¡¼¥É¤Ç»È¤¦  

R ¤Î¼Â¹Ô¥×¥í¥°¥é¥à/DLL ¤Ë¤Ï¥³¡¼¥É¤«¤é¸Æ¤Ó½Ð¤»¤ë¿¤¯(¤½¤·¤Æ FORTRAN ¥³¡¼¥É¤«¤é¸Æ¤Ó½Ð¤»¤ë´ö¤Ä¤«)¤Î ¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤¬¤¢¤ë¡£¤³¤³¤ÇÀâÌÀ¤µ¤ì¤¿¤â¤Î¤À¤±¤¬½½Ê¬°ÂÄꤷ¤Æ¤ª¤ê¡¢ ¤½¤ì¤òÊѹ¹¤¹¤ë¤Ë¤ÏºÙ¿´¤ÎÃí°Õ¤¬¤¤¤ë¡£

¤³¤ì¤é¤ò»ÈÍѤ¹¤ë¿ä¾©¤µ¤ì¤ë¼ê½ç¤Ï C ¥³¡¼¥ÉÃæ¤Ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `R.h' ¤ò¼¡¤Î¤è¤¦¤Ë ¼è¤ê¹þ¤à¤³¤È¤Ç¤¢¤ë

 
#include <R.h>

¤³¤ì¤Ï ¥Ç¥£¥ì¥¯¥È¥ê `$R_HOME/include/R_ext' ¤«¤é´ö¤Ä¤«¤Î¾¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¼è¤ê¹þ¤à¡£¡¢ ¾¤Ë¤â¼è¤ê¹þ¤á¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤¬¡¢¤½¤ì¤é¤¬´Þ¤àÆÃħ¤Ïʸ¾Ï²½¤µ¤ì¤Æ¤ª¤é¤ºÉÔ°ÂÄê¤Ç¤¢¤ë¤È ¸«¤Ê¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£

¤â¤¦°ì¤Ä¤ÎÊýË¡¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `S.h' ¤ò¼è¤ê¹þ¤à¤³¤È¤Ç¡¢¤½¤ì¤Ï S ¤«¤é¤Î ¥³¡¼¥É¤òžÍѤ¹¤ëºÝ¤ËÍ­ÍѤǤ¢¤ë¡£¤³¤ì¤Ï `R.h' ¤è¤ê¤â¶Ï¤«¤Ê¤â¤Î¤ò¼è¤ê¹þ¤ß¡¢ ´ö¤Ä¤«¤Î¸ß´¹ÍѤÎÄêµÁ¤ò»ý¤Ä(Î㤨¤Ð S ¤«¤é¤Î S_complex ¥¿¥¤¥×)¡£

`R.h' ¤«¤é¼è¤ê¹þ¤Þ¤ì¤ëÁ´¤Æ¤ò´Þ¤à¡¢¤³¤ì¤é¤Î¤Û¤È¤ó¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï C++ ¥³¡¼¥É¤«¤é¤â»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£

Ãí°Õ: R ¤Ï¥æ¡¼¥¶¡¼¥³¡¼¥É¤È¤Î¾×ÆÍ¤òÈò¤±¤ë¤¿¤á¤½¤Î³°Éô̾¤Î¿¤¯¤òºÆÄêµÁ¤¹¤ë¤¿¤á¡¢ ¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¡¼¥Ý¥¤¥ó¥È¤ò»È¤¦ºÝ¤ÏŬÅö¤Ê¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¼è¤ê¹þ¤à¤³¤È¤¬ ÉԲķç¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1 ¥á¥â¥ê³ä¤êÅö¤Æ

5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö  
5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê  

C ¥×¥í¥°¥é¥Þ¡¼¤¬»ÈÍѤǤ­¤ëÆó¤Ä¤Î¥á¥â¥ê¡¼³äÅöË¡¤¬¤¢¤ê¡¢ °ì¤Ä¤Ï R ¤¬Áݽü¤ÎÌÌÅݤò¸«¤ë¤â¤Î¤Ç¡¢¤â¤¦°ì¤Ä¤Ï¥æ¡¼¥¶¡¼¤¬Á´ÂΤòÀ©¸æ¤Ç¤­¤ë(½¾¤Ã¤ÆÀÕǤ¤â¤È¤ë)¤â¤Î¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö

¤³¤³¤Ç¤Ï R ¤Ï .C ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Î½ª¤ï¤ê¤Ë¥á¥â¥ê¡¼¤òºÆÍøÍѤ¹¤ë¡£ ¼¡¤Î¤è¤¦¤Ë»È¤¦

 
char* R_alloc(long n, int size)

¤³¤ì¤Ï³Æ¡¹¥µ¥¤¥º size ¤Î n ñ°Ì¤Î¥á¥â¥ê¡¼¤ò³ÎÊݤ¹¤ë¡£»ÈÍÑË¡¤Îŵ·¿Åª¤ÊÎã(¥Ñ¥Ã¥±¡¼¥¸ mva ¤«¤é)¤Ï

 
x = (int *) R_alloc(nrows(merge)+2, sizeof(int));

S ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤ËƱÍͤʸƤӽФ· S_alloc ¤¬¤¢¤ê¡¢ ¤³¤ì¤Ï³ÎÊݤµ¤ì¤¿¥á¥â¥ê¡¼¤òÎí¤ÇËä¤á¤ëÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£

 
S_realloc(char *p, long new, long old, int size)

¤³¤ì¤Ï³ÎÊÝ¥µ¥¤¥º¤ò old ¤«¤é new ñ°Ì¤ËÊѤ¨¡¢ÄɲäÎñ°Ì¤òÎí¤Ç½é´ü²½¤¹¤ë¡£

¤³¤Î¥á¥â¥ê¡¼¤Ï¥Ò¡¼¥×¥á¥â¥ê¡¼¤«¤é¼è¤é¤ì¡¢ .C, .Call ¤Þ¤¿¤Ï .External ¸Æ¤Ó½Ð¤·¤ÎºÇ¸å¤Ë³«Êü¤µ¤ì¤ë¡£ ¥æ¡¼¥¶¡¼¤¬¤½¤ì¤ò½èÍý¤¹¤ë¤³¤È¤â½ÐÍè¡¢vmaxget ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ç¸½ºß¤Î°ÌÃÖ¤ò³Îǧ¤·¡¢ ³¤¤¤Æ vmaxset ¤Î¸Æ¤Ó½Ð¤·¤Ç³ÎÊÝ¥á¥â¥ê¡¼¤ò¥¯¥ê¥¢¤¹¤ë¡£ ¤³¤ì¤Ï½Ïã¼Ô¤Ë¤Î¤ß´«¤á¤é¤ì¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê

¤â¤¦°ì¤Ä¤Î¥á¥â¥ê³ÎÊݵ¡Ç½¤Ï R ¤Î¥¨¥é¡¼½èÍý¤òÄ󶡤¹¤ë¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ç¤¢¤ë malloc ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹ ¤Ç¤¢¤ë¡£¤³¤Î¥á¥â¥ê¤Ï¥æ¡¼¥¶¡¼¤¬³«Êü¤¹¤ë¤Þ¤Ç¸³¤·¡¢R ¤Îºî¶È¶õ´ÖÍѤ˳ÎÊݤµ¤ì¤¿¥á¥â¥ê¤Ë²Ã¤¨¤é¤ì¤ë¡£

¥¤¥ó¥¿¥Õ¥¨¥¤¥¹´Ø¿ô¤Ï

 
type* Calloc(size_t n, type)
type* Realloc(any *p, size_t n, type)
void Free(any *p)

¤Ç¤¢¤ê¡¢calloc, realloc ¤½¤·¤Æ free ¤ÎÎà»÷ʪ¤òÄ󶡤¹¤ë¡£ ¤â¤·¥¨¥é¡¼¤¬À¸¤¸¤ì¤Ð¤½¤ì¤Ï R ¤Ë¤è¤ê½èÍý¤µ¤ì¡¢¤·¤¿¤¬¤Ã¤Æ¤â¤·¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤«¤é̵»ö¤ËÌá¤ë¤³¤È¤¬ ¤Ç¤­¤ì¤Ð¥á¥â¥ê¤ÏÀ®¸ùΣ¤Ë³ÎÊݤµ¤ì³«Êü¤µ¤ì¤ë¡£Free ¤Ï¥Ý¥¤¥ó¥¿ p ¤ò NULL ¤ËÀßÄꤹ¤ë¡£ (S ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¤½¤¦¤¹¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 ¥¨¥é¡¼½èÍý

´ðËÜŪ¤Ê¥¨¥é¡¼½èÍý¥ë¡¼¥Æ¥£¥ó¤Ï R ¥³¡¼¥É¤Î stop ¤È warning ¤Ë ƱÃͤǤ¢¤ê¡¢Æ±¤¸¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤ò»È¤¦¡£

 
void error(const char * format, ...);
void warning(const char * format, ...);

¤³¤ì¤é¤Ï printf ¤Ø¤Î¸Æ¤Ó½Ð¤·¤ÈƱ¤¸¸Æ¤Ó½Ð¤··ÏÎó¤ò»ý¤Ä¤¬¡¢ ºÇ¤âñ½ã¤Ê¾ì¹ç¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÍ¿¤¨¤ëñ°ì¤Îʸ»úÎó¤È¤È¤â¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬½ÐÍè¤ë¡£ (¤â¤·Ê¸»úÎó¤¬ % ¤ò´Þ¤à¾ì¹ç¤Ï¤³¤ì¤ò¹Ô¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£¤µ¤â¤Ê¤¯¤Ð°ì¤Ä¤Î½ñ¼°¤È¤·¤Æ²ò¼á¤µ¤ì¤ë ¤«¤â¤·¤ì¤Ê¤¤¡£)

¤Þ¤¿ S ¤È¸ß´¹¤Ê¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤¬¤¢¤ê¡¢¼¡¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤òÍѤ¤¤ë

 
PROBLEM ...... ERROR
MESSAGE ...... WARN
PROBLEM ...... RECOVER(NULL_ENTRY)
MESSAGE ...... WARNING(NULL_ENTRY)

ºÇ¸å¤ÎÆó¤Ä¤Ï S ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ ¤³¤³¤Ç ...... ¤Ï printf ¤Ø¤Î°ú¿ô¤Î½¸¤Þ¤ê¤Ç¤¢¤ê¡¢Ê¸»úÎó¤ä½ñ¼°Ê¸»úÎó¤Î¸å¤Ë¥«¥ó¥Þ¤Ç ¶èÀÚ¤é¤ì¤¿°ú¿ô¤òȼ¤¦¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.3 Íð¿ôÀ¸À®

R ¤ÎÆâÉôŪ¤ÊÍð¿ôÀ¸À®¤Î¼ê½ç¤Ï

 
double unif_rand();
double norm_rand();
double exp_rand();

¤Ç¤¢¤ê¡¢°ì¸Ä¤Î°ìÍÍ¡¢Àµµ¬¡¢¤½¤·¤Æ»Ø¿ôµ¿»÷Íð¿ô¤òÍ¿¤¨¤ë¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢¤³¤ì¤é¤ò»È¤¦Á°¤Ë¡¢¥æ¡¼¥¶¡¼¤Ï¸Æ¤Ó½Ð¤·

 
GetRNGstate();

¤ò¹Ô¤¤¡¢¤½¤·¤ÆÁ´¤Æ¤ÎɬÍפÊÊÑÎ̤¬À¸À®¤µ¤ì¤¿¤Ê¤é¤Ð¡¢¼¡¤Î¸Æ¤Ó½Ð¤·¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¡£

 
PutRNGstate();

¤³¤ì¤é¤ÏËܼÁŪ¤Ë .Random.seed ¤òÆÉ¤ß¤À¤·(¤â¤·¤¯¤ÏÀ¸À®¤·)¡¢¤½¤·¤Æ»ÈÍѸå¤Ë¤½¤ì¤ò½ñ¤­½Ð¤·¤Æ¤¤¤ë¡£

¥Õ¥¡¥¤¥ë `S.h' ¤Ï S ¤È¤Î¸ß´¹À­¤Î¤¿¤á¡¢GetRNGstate ¤È PutRNGstate ¤ÎÂå¤ï¤ê¤Ë¡¢ seed_in ¤È seed_out ¤òÄêµÁ¤·¤Æ¤¤¤ë¡£

Íð¿ôÀ¸À®¼ê½ç¤Ï R ¤Ë¸ÇÍ­¤Ê¤â¤Î¤Ç¤¢¤ë; R ´Ø¿ô¤Î¸Æ¤Ó½Ð¤·É¾²Á¤òÄ̤¸¤Æ°Ê³°¡¢Íð¿ôÀ¸À®¼ê½ç¤òÁªÂò¤·¤¿¤ê¡¢ Íð¿ô¼ï¤òÀßÄꤷ¤¿¤ê¤¹¤ë¤³¤È¤Ï½ÐÍè¤Ê¤¤¡£

R ¤Î rxxx ´Ø¿ô¤ÎÇØ¸å¤Ë¤¢¤ë C ¥³¡¼¥É¤Ï¡¢ ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rmath.h' ¤òÆÉ¤ß¹þ¤à¤³¤È¤Ë¤è¤ê¥¢¥¯¥»¥¹½ÐÍè¤ë; @xref{Distribution functions}¡£ ¤³¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤Ï°ì¤Ä¤ÎÊÑÎ̤òÀ¸À®¤·¡¢GetRNGstate ¤È PutRNGstate ¤Ø¤Î¸Æ¤Ó½Ð¤·¤È Ʊ»þ¤Ë»È¤ï¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ

IEEE 754-¸ß´¹»»½Ñ¤ò·ç¤¯¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç R ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤¬½ÐÍè¡¢ ¥æ¡¼¥¶¡¼¤Ï¤½¤ì¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ëɬÍפϤʤ¤¡£ ¤à¤·¤í NA, Inf, -Inf (¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç¸ºß¤¹¤ë) ¤½¤·¤Æ NaN ¤ò ¸¡ºº¤¹¤ë´Ø¿ô¤Î°ìÁȤ¬Â¸ºß¤¹¤ë¡£ ¤³¤ì¤é¤Î´Ø¿ô¤Ï¼¡¤Î¥Þ¥¯¥í¤òÍѤ¤¤Æ¥¢¥¯¥»¥¹¤Ç¤­¤ë:

 
ISNA(x)        R ¤Î NA ¤ËÂФ·¤Æ¤À¤±¿¿
ISNAN(x)       R ¤Î NA ¤È IEEE ¤Î NaN ¤ËÂФ·¿¿
R_FINITE(x)    Inf, -Inf, NA, NaN ¤ËÂФ·µ¶

¤½¤·¤Æ´Ø¿ô R_IsNaN ¤Ï NaN ¤ËÂФ·¤Æ¤Ï¿¿¤À¤¬¡¢NA ¤ËÂФ·¤Æ¤Ïµ¶¤Ç¤¢¤ë¡£ isnan ¤ä finite ¤ÎÂå¤ï¤ê¤Ë¤³¤ì¤é¤ò»È¤ª¤¦; ÆÃ¤Ë¸å¼Ô¤Ï¤·¤Ð¤·¤Ð¸í¤Ã¤¿ ·ë²Ì¤òÍ¿¤¨¤ë¡£

Inf ¤ä -Inf ¤Î¸¡ºº¤ò R_PosInf ¤ä R_NegInf ¤Ø¤ÎÅù¹æÀ­¤ò ¸¡ºº¤¹¤ë¤³¤È¤ÇÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£¤½¤·¤Æ NA ¤ò NA_REAL ¤È¤·¤ÆÀßÄê (¤·¤«¤·¸¡ºº¤Ï¤·¤Ê¤¤)¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£

¾å¤ÎÁ´¤Æ¤Ï ÇÜÀºÅټ¿ô ÊÑ¿ô¤ËÂФ·¤Æ¤À¤±Åö¤Æ¤Ï¤Þ¤ë¡£ À°¿ôÊÑ¿ô¤ËÂФ·¤Æ¤Ï¥Þ¥¯¥í NA_INTEGER ¤Ë¤è¤ê¥¢¥¯¥»¥¹½ÐÍè¤ë ÊÑ¿ô¤¬¤¢¤ê¡¢ÈóÀ°¿ôÀ­¤ò¸¡ºº¤·¤¿¤êÀßÄꤷ¤¿¤ê½ÐÍè¤ë¡£

¤³¤ì¤é¤ÎÆÃ¼ìÃͤÏ˽Áö¤·¤¿Ä̾ï¤Î·×»»Ãæ¤ËÀ¸¤¸¤ë²ÄǽÀ­¤Î¤¢¤ë¶Ëü¤Ê ÃͤȤ·¤ÆÉ½¸½¤µ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢½¾¤Ã¤Æ¤½¤ì¤é¤¬ÉÔÃí°Õ¤Ç À¸¤¸¤¿¤Î¤Ç¤Ï¤Ê¤¤¤³¤È¤ò¸¡ºº¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5 ɽ¼¨

R ¤Ø¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ C ¥ë¡¼¥Æ¥£¥ó¤«¤éɽ¼¨¤¹¤ë¤¿¤á¤ÎºÇ¤âÍ­ÍѤʴؿô¤Ï Rprintf ¤Ç¤¢¤ë¡£¤³¤ì¤Ï printf ¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤Ë»È¤¨¤ë¤¬¡¢R ¤Î½ÐÎÏ(¤½¤ì¤Ï¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯ GUI ¥³¥ó¥½¡¼¥ë¤«¤â¤·¤ì¤Ê¤¤)¤Ë½ñ¤­½Ð¤¹ ¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£R ¤ËÌá¤ëÁ°¤Ë("\n" ¤ò´Þ¤à)´°Á´¤Ê¹Ô¤ò½ñ¤­¹þ¤à¤³¤È¤¬ ¸­ÌÀ¤Ç¤¢¤ë¡£

´Ø¿ô REprintf ¤ÏÎɤ¯»÷¤Æ¤¤¤ë¤¬¥¨¥é¡¼¥¹¥È¥ê¡¼¥à(stderr)¤Ë½ñ¤­½Ð¤·¡¢ ¤³¤ì¤Ïɸ½àŪ¤Ê½ÐÎÏ¥¹¥È¥ê¡¼¥à¤ÈƱ¤¸¤«¤â¤·¤ì¤Ê¤¤¤·°Û¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ ´Ø¿ô Rvprintf ¤È REvprintf ¤Ï vprintf ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë Îà»÷ʪ¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.1 FORTRAN¤«¤é¤Îɽ¼¨

ÍýÏÀŪ¤Ë¤ÏFORTRAN¤Î write ¤È print ʸ¤ò»È¤¦¤³¤È¤¬½ÐÍè¤ë¤¬¡¢ ¤·¤«¤·½ÐÎÏ¤Ï C ¤Î¤½¤ì¤È¤¦¤Þ¤¯º®¤¶¤ê¹ç¤ï¤Ê¤¤¤«¤â¤·¤ì¤º¡¢GUI ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¾å¤Ç ¸«¤¨¤Ê¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£»ÈÍѤò¤µ¤±¤ë¤Î¤¬¥Ù¥¹¥È¤Ç¤¢¤ë¡£

FORTRAN¥³¡¼¥É¤«¤é¾åË¡¤ò½ÐÎϤ¹¤ë¤³¤È¤òÍÆ°×¤Ë¤¹¤ë¤¿¤á¤Ë»°¤Ä¤Î¥µ¥Ö¥ë¡¼¥Æ¥£¥ó¤¬ ÍѰդµ¤ì¤Æ¤¤¤ë¡£

 
subroutine dblepr(label, nchar, data, ndata)
subroutine realpr(label, nchar, data, ndata)
subroutine intpr (label, nchar, data, ndata)

¤³¤³¤Ç label ¤«ºÇÂç 255 ʸ»ú¤Îʸ»ú¥é¥Ù¥ë¤Ç¤¢¤ê¡¢ nchar ¤Ï¤½¤ÎŤµ (¤â¤·Á´¤Æ¤Î¥é¥Ù¥ë¤ò»È¤¦¤Î¤Ê¤é -1 ¤Ç¤¢¤Ã¤Æ¤âÎɤ¤)¤Ç¤¢¤ê¡¢ data ¤ÏŬÅö¤Ê·¿(¤½¤ì¤¾¤ì double precision, real ¤½¤·¤Æ integer)¤Î ¾¯¤¯¤È¤âŤµ ndata ¤Îʸ»úÇÛÎó¤Ç¤¢¤ë¡£ ¤³¤ì¤é¤Î¥ë¡¼¥Æ¥£¥ó¤Ï¥é¥Ù¥ë¤ò°ì¹Ô¤Ëɽ¼¨¤·¡¢¤½¤·¤Æ data ¤ò¤½¤ì¤é¤¬¤¢¤¿¤«¤â R ¤Î¥Ù¥¯¥È¥ë ¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë°Ê¹ß¤Î¹Ô¤Ë½ÐÎϤ¹¤ë¡£ ¤³¤ì¤é¤Ï ndata ¤¬Îí¤Ç¤âưºî¤·¡¢½¾¤Ã¤Æ¥é¥Ù¥ë¤À¤±¤ò ɽ¼¨¤¹¤ë¤³¤È¤â½ÐÍè¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.6 FORTRAN ¤«¤é C ¤ò¸Æ¤Ö¡¢¤Þ¤¿¤½¤ÎµÕ

FORTRAN ¤¬À¸À®¤¹¤ë¥·¥ó¥Ü¥ë¤ËÂФ¹¤ë̿̾µ¬Â§¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ë¡£ ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îº¹°Û¤ò¥«¥Ð¡¼¤¹¤ë¤³¤È¤ò½õ¤±¤ë¤¿¤á¤Ë¡¢»È¤ï¤ì¤ë¤Ù¤­ °ìÏ¢¤Î¥Þ¥¯¥í¤¬¤¢¤ë¡£

F77_SUB(name)
FORTRANto ¤«¤é¸Æ¤Ð¤ì¤ë´Ø¿ô¤ò C Ãæ¤ÇÄêµÁ¤¹¤ë
F77_NAME(name)
C Ãæ¤Ç»ÈÍѤ¹¤ëÁ°¤Ë FORTRAN ¥ë¡¼¥Á¥ó¤òÀë¸À¤¹¤ë
F77_CALL(name)
C ¤«¤é FORTRAN ¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹
F77_COMDECL(name)
C Ãæ¤Ç FORTRAN ¤Î common block ¤òÀë¸À¤¹¤ë
F77_COM(name)
C ¤«¤é FORTRAN ¤Î common block ¤ò¥¢¥¯¥»¥¹¤¹¤ë

¤Û¤È¤ó¤É¤Î¸½ºß¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç¤³¤ì¤é¤ÏƱ¤¸¤Ç¤¢¤ë¤¬¡¢²á¿®¤·¤Ê¤¤Êý¤¬¸­ÌÀ¤Ç¤¢¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.7 ¿ôÃͲòÀÏ¥µ¥Ö¥ë¡¼¥Á¥ó

R ¤Ï¤½¤ì¼«¿È¤Ç»ÈÍѤ¹¤ë¤¿¤á¿¿ô¤Î¿ô³Ø´Ø¿ô¤ò»ý¤Ä¡£ Î㤨¤Ð¿ôÃÍŪÀþ·ÁÂå¿ô·×»»¤äÆÃ¼ì´Ø¿ô¤Ç¤¢¤ë¡£

¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `R_ext/Linpack.h' ¤Ë¤Ï R ¤¬´Þ¤à LINPACK ¤È EISPACK Àþ·ÁÂå¿ô´Ø¿ô¤Î¾ÜºÙ¤¬¤¢¤ë¡£¤³¤ì¤é¤Ï FORTRAN ¥µ¥Ö¥ë¡¼¥Á¥ó¤Ø¤Î ¸Æ¤Ó½Ð¤·¤È¤·¤ÆÉ½¸½¤µ¤ì¤Æ¤ª¤ê¡¢¤Þ¤¿¥æ¡¼¥¶¡¼¤Î FROTRAN ¥³¡¼¥É¤«¤é¤â»ÈÍÑ ²Äǽ¤Ç¤¢¤ë¡£API ¤Î¸ø¼°¤Ê°ìÉô¤Ç¤Ï¤Ê¤¤¤¬¡¢¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Î ¥»¥Ã¥È¤ÏÊѹ¹¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤½¤¦¤â¤Ê¤¤(¤·¤«¤·ÁýÊ䤵¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£

¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rmath.h' ¤Ë¤Ï¾¤Î¿¤¯¤ÎÍýÍѲÄǽ¤Ê´Ø¿ô¤Î°ìÍ÷¤¬¤¢¤ê¡¢ °Ê²¼¤ÎÉûÀá¤ÇÀâÌÀ¤µ¤ì¤ë¡£¤³¤ì¤é¤Î¿¤¯¤Ï R ´Ø¿ô¤ÎÇØ¸å¤Ë¤¢¤ë¥³¡¼¥É¤Ø¤Î C ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ç¤¢¤ê¡¢R ´Ø¿ô¤Î¥É¥­¥å¥á¥ó¥È¤¬¹¹¤Ê¤ë¾ÜºÙ¤òÍ¿¤¨¤ë¤Ç¤¢¤í¤¦¡£

5.7.1 ʬÉÛ´Ø¿ô  
5.7.2 ¿ô³Ø´Ø¿ô  
5.7.3 ¾®Æ»¶ñ  
5.7.4 ¿ô³ØÄê¿ô  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.7.1 ʬÉÛ´Ø¿ô

ɸ½àŪ¤ÊÅý·×ʬÉÛ¤ËÂФ¹¤ëÌ©Åٴؿô¡¢ÎßÀÑʬÉÛ´Ø¿ô¤½¤·¤Æ¥¯¥ª¥ó¥¿¥¤¥ë´Ø¿ô ¤ò·×»»¤¹¤ë¥ë¡¼¥Æ¥£¥ó¤¬¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤È¤·¤ÆÍýÍѲÄǽ¤Ç¤¢¤ë¡£

¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤Ø¤Î°ú¿ô¤ÏÀµµ¬Ê¬ÉÛ¤ËÂФ¹¤ë¤½¤ì¤é¤Î·Á¼°¤òƧ½±¤¹¤ë:

 
double dnorm(double x, double mu, double sigma, int give_log);
double pnorm(double x, double mu, double sigma, int lower_tail,
             int give_log);
double qnorm(double p, double mu, double sigma, int lower_tail,
             int log_p);
double rnorm(double mu, double sigma);

¤Ä¤Þ¤ê¡¢ºÇ½é¤Î°ú¿ô¤ÏÌ©Åٴؿô¡¢ÎßÀÑʬÉÛ´Ø¿ô¤½¤·¤Æ¥¯¥ª¥ó¥¿¥¤¥ë´Ø¿ô¤Î °ÌÃÖ¤òÍ¿¤¨¡¢°Ê²¼Ê¬ÉۤΥѥé¥á¡¼¥¿¤òÍ¿¤¨¤ë¡£°ú¿ô lower_tail ¤ÏÉáÄÌ TRUE (¤â¤·¤¯¤Ï 1) ¤Ç¤¢¤ë¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¤â¤·Ê¬Éۤξ妤¬É¬Íפ«»ØÄꤵ¤ì¤ë¤Ê¤é FALSE (¤â¤·¤¯¤Ï 0) ¤Ç¤¢¤Ã¤Æ¤âÎɤ¤¡£

ÎßÀÑ (¤â¤·¤¯¤Ï "integrated") hazard ´Ø¿ô @iftex H(t) = - log(1 - F(t))

 
- pdist(t, ..., /*lower_tail = */ FALSE, /* give_log = */ TRUE)

¤â¤·¤¯¤Ïñ¤Ë (¤½¤·¤Æ¤è¤ê°Å¹æÅª¤Ë) - pdist(t, ..., 0, 1) ¤Ç¤âÎɤ¤¡£

ºÇ¸å¤Ë give_log ¤Ï·ë²Ì¤òÂпô¥¹¥±¡¼¥ë¤ÇÍߤ·¤±¤ì¤ÐÎí°Ê³°¤ÎÃͤ˼è¤ê¡¢ ¤½¤·¤Æ p ¤¬Âпô¥¹¥±¡¼¥ë¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð log_p ¤ÏÎí°Ê³°¤ÎÃͤ˼è¤ëɬÍפ¬¤¢¤ë¡£

Íð¿ôÀ¸À®¥ë¡¼¥Á¥ó rnorm ¤Ï°ì¤Ä¤ÎÀµµ¬Íð¿ô¤òÊÖ¤¹¡£ Íð¿ôÀ¸À®¥ë¡¼¥Á¥ó¤Î»ÈÍѤΤ¿¤á¤Î¼ê½ç¤Ï See section 5.3 Íð¿ôÀ¸À® ¤ò¸«¤è¡£

¤³¤ì¤é¤Î°ú¤­¿ôÎó¤Ï (̾Á°¤È rnorm ¤¬ n ¤ò»ý¤¿¤Ê¤¤¤³¤È¤ò½ü¤­)Ʊ¤¸Ì¾Á°¤ÎÂбþ¤¹¤ë R ´Ø¿ô¤ÈÁ´¤¯Æ±¤¸¤Ç¤¢¤ê¡¢½¾¤Ã¤Æ R ´Ø¿ô¤Î¥É¥­¥å¥á¥ó¥È¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£

»²¹Í¤È¤·¤Æ¡¢°Ê²¼¤Îɽ¤Ï´ðËÜ̾ (Îã³°¤ò½ü¤­ÀèÆ¬¤Ë `d', `p', `q' ¤â¤·¤¯¤Ï `r' ¤¬ÉÕ¤¯) ¤ÈʬÉÛ¸ÇÍ­¤Î°ú¿ô¤Î´°Á´¤ÊÁȤòÍ¿¤¨¤ë¡£

beta beta a, b
non-central beta nbeta a, b, lambda
binomial binom n, p
Cauchy cauchy location, scale
chi-squared chisq df
non-central chi-squared nchisq df, lambda
exponential exp scale
F f n1, n2
non-central F {p,q}nf n1, n2, ncp
gamma gamma shape, scale
geometric geom p
hypergeometric hyper NR, NB, n
logistic logis location, scale
lognormal lnorm logmean, logsd
negative binomial nbinom n, p
normal norm mu, sigma
Poisson pois lambda
Student's t t n
non-central t {p,q}nt df, delta
Studentized range {p,q}tukey rr, cc, df
uniform unif a, b
Weibull weibull shape, scale
Wilcoxon rank sum wilcox m, n
Wilcoxon signed rank signrank n

°ú¿ô̾¤Ï R ¤Î¤½¤ì¤ÈÁ´¤¯Æ±¤¸¤Ç¤Ï¤Ê¤¤¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.7.2 ¿ô³Ø´Ø¿ô

Function: double gammafn (double x)
Function: double lgammafn (double x)
Function: double digamma (double x)
Function: double trigamma (double x)
Function: double tetragamma (double x)
Function: double pentagamma (double x)
¥¬¥ó¥Þ´Ø¿ô¡¢¤½¤Î¼«Á³Âпô¡¢¤½¤·¤Æ¤½¤ÎºÇ½é¤Î4¤Ä¤ÎƳ´Ø¿ô¡£

Function: double beta (double a, double b)
Function: double lbeta (double a, double b)
(´°Á´) ¥Ù¡¼¥¿´Ø¿ô¤È¤½¤Î¼«Á³Âпô¡£

Function: double choose (double n, double k)
Function: double lchoose (double n, double k)
n ¸Ä¤«¤é k ¸Ä¤òÁª¤ÖÁȹ礻¤Î¿ô¤È¤½¤Î¼«Á³Âпô¡£ n ¤È k ¤Ï°ìÈֶᤤÀ°¿ô¤Ë´Ý¤á¤é¤ì¤ë¡£

Function: double bessel_i (double x, double nu, double expo)
Function: double bessel_j (double x, double nu)
Function: double bessel_k (double x, double nu, double expo)
Function: double bessel_y (double x, double nu)
¥¤¥ó¥Ç¥Ã¥¯¥¹ nu ¤Ç¥¿¥¤¥×¤¬ I, J, K ¤½¤·¤Æ Y ¤Î¥Ù¥Ã¥»¥ë´Ø¿ô¡£ bessel_i ¤È bessel_k ¤ËÂФ·¤Æ¤Ï¤â¤· expo ==2 exp(-x) I(x;nu) ¤â¤·¤¯¤Ï exp(x) K(x;nu) ¤òÊÖ¤¹¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¡£ (¥¹¥±¡¼¥ë²½¤·¤Ê¤¤ÃÍ¤Ë¤Ï expo == 1 ¤ò»È¤¦¡£)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.7.3 ¾®Æ»¶ñ

¾¤Ë¤âÍøÍѲÄǽ¤Ê¾¯¤·¤Î¿ôÃÍ·×»»ÍÑ´Ø¿ô¤¬¥¨¥ó¥È¥ê¡¼¥Ý¥¤¥ó¥È¤Î·Á¤Ç¤¢¤ë¡£

Function: double R_pow (double x, double y)
Function: double R_pow_di (double x, int i)
R_pow(x, y) ¤È R_pow_di(x, i) ¤Ï¤½¤ì¤¾¤ì x^y ¤È x^i ¤ò·×»»¤¹¤ë¡£ x, y ¤â¤·¤¯¤Ï i ¤¬Îí¤À¤Ã¤¿¤ê¡¢·ç»ÃÍ¡¢Ìµ¸ÂÂç¡¢Ëô¤Ï NaN ¤Ç¤Ê¤¤¤«¤ò R_FINITE ¤òÍѤ¤¤Æ¸¡ºº¤·¡¢x, y ¤â¤·¤¯¤Ï i ¤¬Îí¤À¤Ã¤¿¤ê¡¢·ç»ÃÍ¡¢Ìµ¸ÂÂç¡¢Ëô¤Ï NaN ¤Î¾ì¹ç¤ÏŬÀµ¤Ê·ë²Ì (R ¤ÈƱ¤¸) ¤òÊÖ¤¹¡£

Function: double pythag (double a, double b)
pythag(a, b) ¤Ï sqrt(a^2 + b^2) ¤ò·å°î¤ì¤äÇËÌÇŪ¤Ê·åÍî¤Á̵¤·¤Ë·×»»¤¹¤ë: Î㤨¤Ð a ¤È b ¤ÎÁÐÊý¤¬ 1e200 ¤È 1e300 (IEEE ÇÜÀºÅÙ¤Ç) ¤Î´Ö¤Ë¤¢¤Ã¤Æ¤â°ÍÁ³¤È¤·¤ÆÆ°ºî¤¹¤ë¡£

Function: double log1p (x)
log(1 + x) (log 1 plus x) ¤ò¾®¤µ¤Ê x, ¤Ä¤Þ¤ê @iftex |x| << 1 ¤Ç¤âÀµ³Î¤Ë·×»»¤¹¤ë¡£

Function: int imax2 (int x, int y)
Function: int imin2 (int x, int y)
Function: double fmax2 (double x, double y)
Function: double fmin2 (double x, double y)
¤½¤ì¤¾¤ìÆó¤Ä¤ÎÀ°¿ô¡¢¤â¤·¤¯¤ÏÇÜÀºÅټ¿ô¤ÎÂ礭¤ÊÊý (max) ¤â¤·¤¯¤Ï¾®¤µ¤ÊÊý (min) ¤òÊÖ¤¹¡£

Function: double sign (double x)
signum ´Ø¿ô¤ò·×»»¤¹¤ë¡£sign(x) ¤Ï x ¤¬Àµ¡¢Îí¡¢Éé¤Ë±þ¤¸¤Æ 1, 0, Ëô¤Ï -1 ¤È¤Ê¤ë¡£

Function: double fsign (double x, double y)
"É乿¤Î¸ò´¹" ¤ò¼Â¹Ô¤¹¤ë¡£@iftex |x| * sign(x)

Function: double fprec (double x, double digits)
x ¤ò10¿ÊË¡¤Ç(¾¯¿ôÅÀ°Ê²¼) digits ·å¤Ë´Ý¤á¤¿¿ôÃͤòÊÖ¤¹¡£

¤³¤ì¤Ï R ¤Î round() ¤ÇÍѤ¤¤é¤ì¤ë´Ø¿ô¤Ç¤¢¤ë¡£

Function: double fround (double x, double digits)
x ¤ÎÃͤò10¿ÊË¡¤ÇÍ­¸þ¿ô»ú digits ·å¤Ë´Ý¤á¤¿¿ôÃͤòÊÖ¤¹¡£

¤³¤ì¤Ï R ¤Î signif() ¤ÇÍѤ¤¤é¤ì¤ë´Ø¿ô¤Ç¤¢¤ë¡£

Function: double fmod (double x)
x ¤ÎÃͤÎÀäÂÐÃͤòÊÖ¤¹¡£

Function: double ftrunc (double x)
x ¤ÎÃͤòÎí¤Ë¸þ¤«¤Ã¤Æ(À°¿ôÃͤË)ÀÚ¤ê¼Î¤Æ¤¿ÃͤòÊÖ¤¹¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.7.4 ¿ô³ØÄê¿ô

R ¤ÏÉáÄÌ `math.h' ¤Ë´Þ¤Þ¤ì¤ëÄê¿ô¤È¡¢Åý·×·×»»¤Ç»È¤ï¤ì¤ë´ö¤Ä¤«¤ÎÄê¿ô¤ò´Þ¤à¡¢ Îɤ¯»È¤ï¤ì¤ë¿ô³ØÄê¿ô¤Î¥»¥Ã¥È¤ò»ý¤Ä¡£¤³¤ì¤éÁ´¤Æ¤Ï(¾¯¤¯¤È¤â) 30 ·å¤ÎÀºÅÙ¤Ç `Rmath.h' Ãæ¤Ë¤¢¤ë¡£°Ê²¼¤ÎÄêµÁ¤Ç¤Ï ln(x) ¤Ï¼«Á³Âпô (R¤Ë¤ª¤±¤ë log(x))¤òɽ¤¹¡£

Name Definition (ln = log) round(value, 7)
M_E = e 2.7182818
M_LOG2E = log2(e) 1.4426950
M_LOG10E = log10(e) 0.4342945
M_LN2 = ln(2) 0.6931472
M_LN10 = ln(10) 2.3025851
M_PI = pi 3.1415927
M_PI_2 = pi/2 1.5707963
M_PI_4 = pi/4 0.7853982
M_1_PI = 1/pi 0.3183099
M_2_PI = 2/pi 0.6366198
M_2_SQRTPI = 2/sqrt(pi) 1.1283792
M_SQRT2 = sqrt(2) 1.4142136
M_SQRT1_2 = 1/sqrt(2) 0.7071068
M_SQRT_3 = sqrt(3) 1.7320508
M_SQRT_32 = sqrt(32) 5.6568542
M_LOG10_2 = log10(2) 0.3010300
M_SQRT_PI = sqrt(pi) 1.7724539
M_1_SQRT_2PI = 1/sqrt(2pi) 0.3989423
M_SQRT_2dPI = sqrt(2/pi) 0.7978846
M_LN_SQRT_PI = ln(sqrt(pi)) 0.5723649
M_LN_SQRT_2PI = ln(sqrt(2*pi)) 0.9189385
M_LN_SQRT_PId2 = ln(sqrt(pi/2)) 0.2257914

¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¥Ø¥Ã¥À¡¼ `R_ext/Constants.h' Ãæ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëÄê¿ô (PI, DOUBLE_EPS) ¤¬¤¢¤ë¡£¸å¼Ô¤Ï¼ç¤Ë S ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ç¤¢¤ë¡£

¤µ¤é¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¥Ø¥Ã¥À¡¼ `R_ext/Boolean.h' ¤Ï C ¤ÇÏÀÍýÃͤò¼óÈø°ì´Ó¤·¤Æ»ÈÍѤ¹¤ëÊýË¡¤òÄ󶡤¹¤ë¤¿¤á¤Ë Rboolean ·¿¤ÎÄê¿ô TRUE ¤È FALSE = 0 ¤ò»ý¤Ä¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.8 ¾®Æ»¶ñ´Ø¿ô

R ¤Ï¥æ¡¼¥¶¡¼¤Î C ¥³¡¼¥É¤ØÍøÍѲÄǽ¤Ê¤«¤Ê¤ê´°Á´¤Ê¥½¡¼¥È¤Î¤¿¤á¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ý¤Ä¡£ °Ê²¼¤¬¤½¤¦¤Ç¤¢¤ë¡£

Function: void R_isort (int* x, int n)
Function: void R_rsort (double* x, int n)
Function: void R_csort (Rcomplex* x, int n)
Function: void rsort_with_index (double* x, int* index, int n)
ºÇ½é¤Î»°¤Ä¤Ï¤½¤ì¤¾¤ìÀ°¿ô¡¢¼Â¿ô(ÇÜÀºÅÙ)¤½¤·¤ÆÊ£ÁÇ¿ô¤ò¥½¡¼¥È¤¹¤ë¡£ (Ê£ÁÇ¿ô¤ÏºÇ½é¤Ë¼ÂÉô¡¢¤½¤ì¤«¤éµõÉô¤Ç¥½¡¼¥È¤µ¤ì¤ë¡£)

rsort_with_index ¤Ï x ¤ò¥½¡¼¥È¤·¡¢¼¡¤ËƱ¤¸Ê¤ٴ¹¤¨¤ò index ¤Ë¹Ô¤¦¡£

Function: void revsort (double* x, int* index, int n)
rsort_with_index ¤ËÎà»÷¤¹¤ë¤¬¹ß½ç¤Ë¥½¡¼¥È¤¹¤ë¡£

Function: void iPsort (int* x, int n, int k)
Function: void rPsort (double* x, int n, int k)
Function: void cPsort (Rcomplex* x, int n, int k)
¤³¤ì¤éÁ´¤Æ¤Ï(¶Ë¤á¤Æ)ÉôʬŪ¤Ê¥½¡¼¥È¤ò¹Ô¤¦¡£x ¤ò¥½¡¼¥È¤·¡¢ x[k] ¤¬¤è¤ê¾®¤µ¤ÊÃͤϺ¸¤Ë¡¢¤è¤êÂ礭¤ÊÃͤϱ¦¤Ë¤¯¤ë¤è¤¦¤Ë¤¹¤ë¡£

Function: void R_max_col (double* matrix, int* nr, int* nc, int* maxes)
¹Ô("FORTRAN")½ç¤Î nr ³Ý¤±¤ë ny ¤Î¹ÔÎó matrix ¤òÍ¿¤¨¤¿¤È¤­¡¢ R_max_col() ¤Ï maxes[i-1] ¤Ë i-ÈÖÌܤιԤκÇÂçÍ×ÁǤÎÎó¿ô¤òÊÖ¤¹ (R ¤Î max.col() ´Ø¿ô¤ÈƱÍÍ)¡£

¤Þ¤¿´ö¤Ä¤«¤Î R ´Ø¿ôÃæ¤Ç¥Õ¥¡¥¤¥ë̾¤òŸ³«¤¹¤ëÆâÉô´Ø¿ô¤¬¤¢¤ê¡¢ path.expand ¤òÍѤ¤¤ÆÄ¾ÀܸƤӽФ»¤ë¡£

Function: char *R_ExpandFileName (char* fn)
¥Ñ¥¹Ì¾ fn ¤ÎÀèÆ¬¤Î¥Á¥ë¥À¤ò¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê(¤â¤·Â¸ºß¤¹¤ì¤Ð)¤Ë ÃÖ¤­´¹¤¨¤ë¡£¸·Ì©¤Ê°ÕÌ£¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë°Í¸¤¹¤ë; ÉáÄ̤⤷ÄêµÁ¤µ¤ì¤Æ¤¤¤ì¤Ð´Ä¶­ÊÑ¿ô HOME ¤«¤é¼è¤é¤ì¤ë¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.9 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤È¥Ð¡¼¥¸¥ç¥ó¾ðÊó

¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï USING_R ¤òÄêµÁ¤·¡¢¤³¤ì¤Ï¥³¡¼¥É¤¬¼ÂºÝ¤Ë R ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò ¸¡ºº¤¹¤ë¤Î¤Ë»È¤¨¤ë¡£ ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rconfig.h' (`R.h' ¤Ë¤è¤ê¼è¤ê¹þ¤Þ¤ì¤ë) ¤Ï¼ç¤Ë¾¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë Ãæ¤Ë¤¢¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ ¥Þ¥¯¥í WORDS_BIGENDIAN ¤Ï big-endian ¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÄêµÁ¤µ¤ì(Î㤨¤Ð sparc-sun-solaris2.6)¡¢ little-endian ¥·¥¹¥Æ¥à(Linux ¤ä Windows ²¼¤Î i686 ¤Î¤è¤¦¤Ë)¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ¤³¤ì¤Ï¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤òÁàºî¤¹¤ëºÝ¤ËÊØÍø¤Ç¤¢¤ë¡£

¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rversion.h' (`R.h' ¤Ë¤è¤ê¼è¤ê¹þ¤Þ¤ì¤ë)¤ÏÀ°¿ô¤È¤·¤Æ¥³¡¼¥É²½¤µ¤ì¤¿¥Ð¡¼¥¸¥ç¥ó ¾ðÊó¤òÍ¿¤¨¤ë¥Þ¥¯¥í R_VERSION ¤È¥³¡¼¥É²½¤ò¹Ô¤¦¥Þ¥¯¥í R_Version ¤ò´Þ¤à¡£ ¤³¤ì¤Ï R ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬½½Ê¬¿·¤·¤¤¤«¸¡ºº¤·¤¿¤ê¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤È¤Î¸ß´¹ÅªÆÃħ¤ò¼è¤ê¹þ¤à¤Î¤Ë »È¤¦¤³¤È¤¬½ÐÍè¤ë¡£¤³¤Î¥Þ¥¯¥í¤ò»ý¤¿¤Ê¤¤½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÂФ¹¤ëÈ÷¤¨¤È¤·¤Æ°Ê²¼¤Î¤è¤¦¤Ê ¹½À®¤ò»È¤ª¤¦

 
#if defined(R_VERSION) && R_VERSION >= R_Version(0, 99, 0)
  ...
#endif

¥Þ¥¯¥í R_MAJOR, R_MINOR, R_YEAR, R_MONTH ¤½¤·¤Æ R_DAY ¤Ë´Ø¤¹¤ë ¾ÜºÙ¤Ê¾ðÊó¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë: ¤½¤ì¤é¤Î½ñ¼°¤Ë¤Ä¤¤¤Æ¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë `Rversion.h' ¤ò¸«¤è¡£ (99.0 ¤Î¤è¤¦¤Ê)¥Þ¥¤¥Ê¡¼¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ï patchlevel ¤ò´Þ¤à¤³¤È¤òÃí°Õ¤·¤è¤¦¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.10 ¤³¤ì¤é¤Î´Ø¿ô¤ò¼«Ê¬¼«¿È¤Î C ¥³¡¼¥É¤Ç»È¤¦

`Rmath.h' ¤Ëʸ¾Ï²½¤µ¤ì¤Æ¤¤¤ë R ¤Î¿ô³Ø´Ø¿ô¤Î¥»¥Ã¥È¤Ç¤¢¤ë Mathlib ¤ò Unix ¤ä Windows ¤Ç»È¤¨¤ëñÆÈ»ÈÍѲÄǽ¤Ê¥é¥¤¥Ö¥é¥ê `libRmath' ¤È¤·¤Æ¹½ÃۤǤ­¤ë¡£ (¤³¤ì¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é¼è¤é¤ì¤¿ 5.7 ¿ôÃͲòÀÏ¥µ¥Ö¥ë¡¼¥Á¥ó ¤Ëʸ¾Ï²½¤µ¤ì¤Æ¤¤¤ë ´Ø¿ô¤ò´Þ¤à¡£)

¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï R ¤ò°Ü¿¢¤¹¤ëºÝ¤Ë¤Ï¼«Æ°Åª¤ËºîÀ®¤µ¤ì¤º¡¢¥Ç¥£¥ì¥¯¥È¥ê `src/nmath/standalone' ¤ËºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£¤½¤³¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë `README' ¤ò¸«¤è¡£¥³¡¼¥É¤ò¼«Ê¬¤Î C ¥×¥í¥°¥é¥à¤Ç »È¤¦¤¿¤á¤Ë¤Ï°Ê²¼¤ò¼è¤ê¹þ¤à

 
#define MATHLIB_STANDALONE
#include <Rmath.h>

¤½¤·¤Æ `-lRmath' ¤ËÂФ·¤Æ¥ê¥ó¥¯¤¹¤ë¡£»²¹ÍÎã¥Õ¥¡¥¤¥ë `test.c' ¤¬¤¢¤ë¡£

Íð¿ôȯÀ¸¥ë¡¼¥Æ¥£¥ó¤ò»È¤¦¤Ë¤Ï¾¯¡¹Ãí°Õ¤¬¤¤¤ë¡£°ìÍÍÍð¿ôȯÀ¸¥×¥í¥°¥é¥à¤ò½àÈ÷¤¹¤ë ɬÍפ¬¤¢¤ë¡£

 
double unif_rand(void)

¤Þ¤¿¤ÏÍѰդµ¤ì¤¿¤â¤Î¤ò»È¤¦(ÍѰդµ¤ì¤¿¤â¤Î¤ò»È¤¦¤¿¤á¤Î¶¦Íѥ饤¥Ö¥é¥ê¤äDLL¤È¤È¤â¤Ë¡¢¤³¤ì¤Ï Marsaglia-multicarry Ë¡¤Ç¤¢¤ê¤½¤ÎÍð¿ô¼ï¤òÀßÄꤹ¤ë¤¿¤á¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È point

 
set_seed(unsigned int, unsigned int)

¤ò»ý¤Ä)¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A. R ¤Î¡ÊÆâÉô¤Î¡Ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë´Ø¤¹¤ë»¨Â¿¤Ê¤³¤È

A.1 .Internal ¤È .Primitive  
A.2 R ¥³¡¼¥É¤Î¸¡ºº  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.1 .Internal ¤È .Primitive

¹½ÃÛ»þ¤Ë R ¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ C ¥³¡¼¥É¤Ï "ľÀÜ" ¤â¤·¤¯¤Ï .Internal ¥¤¥ó¥¿¥Õ¥§¥¤¥¹·Ðͳ¤Ç¸Æ¤Ó½Ð¤¹¤³¤È¤¬½ÐÍè¡¢¤³¤ì¤Ï¹½Ê¸¤ò½ü¤±¤Ð .External ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤ËÈó¾ï¤ËÎɤ¯»÷¤Æ¤¤¤ë¡£¼è¤ê¾Ü¤·¤¯¤Î¤Ù¤ë¤È¡¢R ¤Ï R ´Ø¿ô¤Î̾Á°¤ÈÂбþ¤¹¤ë¸Æ¤Ó½Ð¤· C ´Ø¿ô¤Îɽ¤ò°Ý»ý¤·¤Æ¤ª¤ê¡¢¤½¤ì¤Ï´·Îã¤Ç¤¹¤Ù¤Æ `do_' ¤Ç¤Ï¤¸¤Þ¤ê SEXP ¤òÊÖ¤¹¡£ R_FunTab in ¥Õ¥¡¥¤¥ë `src/main/names.c') one can ¤³¤Îɽ (¥Õ¥¡¥¤¥ë `src/main/names.c' Ãæ¤Î R_FunTab) ·Ðͳ¤Ç¡¢ ¤Þ¤¿´Ø¿ô¤Î°ú¿ô¤¬´ö¤ÄɬÍפ«¡¢µö¤µ¤ì¤ë¤«¡¢°ú¿ô¤Ï¸Æ¤Ó½Ð¤·Á°¤Ëɾ²Á¤µ¤ì¤ë¤Ù¤­¤« ¤É¤¦¤«¡¢´Ø¿ô¤Ï .Internal ¥¤¥ó¥¿¥Õ¥§¥¤¥¹·Ðͳ¤Ç¥¢¥¯¥»¥¹¤µ¤ì¤Í¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦ °ÕÌ£¤Ç "ÆâÉôŪ" ¤«¤É¤¦¤«¡¢Ä¾ÀÜ¥¢¥¯¥»¥¹¤Ç¤­ R Ãæ¤Ç .Primitive ¤È¤·¤Æ ɽ¼¨¤µ¤ì¤ë¤Ù¤­¤«¡¢Åù¤ò»ØÄê¤Ç¤­¤ë¡£

R ¤Îµ¡Ç½¤Ï¤Þ¤¿Âбþ¤¹¤ë C ¥³¡¼¥É¤òÍѰդ·¤³¤Î´Ø¿ôɽ¤Ë²Ã¤¨¤ë¤³¤È¤Ë¤è¤ê ³ÈÄ¥¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£

°ìÈÌŪ¤Ë¡¢¤½¤¦¤·¤¿Á´¤Æ¤Î´Ø¿ô¤Ï .Internal() ¤ò»ÈÍѤ¹¤ë¤Î¤¬°ÂÁ´¤Ç¤¢¤ê¡¢ ÆÃ¤Ë̾Á°¤È´ûÄê°ú¿ô¤Îʬ¤«¤ê¤ä¤¹¤¤½èÍý¤ò²Äǽ¤Ë¤¹¤ë¡£ Î㤨¤Ð axis ¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë

 
axis <- function(side, at = NULL, labels = NULL, ...)
    .Internal(axis(side, at, labels, ...))

¤·¤«¤·¤Ê¤¬¤é¡¢Êص¹¤È¸úΨÀ­(.Internal ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î»ÈÍѤϤ¤¤¯¤é¤«¤ÎÉé²Ù¤òÀ¸¤¸¤ë)¤Î¤¿¤á¤Ë¡¢ ľÀÜ¥¢¥¯¥»¥¹½ÐÍè¤ëÎã³°¤¬¤¢¤ë¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï R ¥³¡¼¥É¤ò»ÈÍѤ»¤º¡¢½¾¤Ã¤ÆÄ̾ï¤Î¥¤¥ó¥¿¥×¥ê¥¿´Ø¿ô¤È Èó¾ï¤Ë°Û¤Ê¤ë¡£ÆÃ¤Ë¡¢args ¤È body ¤Ï¤½¤¦¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ· NULL ¤òÊÖ¤¹¡£

¤³¤ì¤é¤Î "primitive" ¤Ê´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ë´°Á´¤Ë»ØÄê¤Ç¤­¤ë¡£

  1. ¿¿¤Ë ¸À¸ì ¤Î°ìÉô¤Ç¤¢¤ë¤¬ R ¤Î "primitive" ´Ø¿ô¤È¤·¤ÆÂ¸ºß¤¹¤ë¤â¤Î¡£

     
    {       (         if       for  while  repeat  break  next
    return  function  on.exit
    

  2. °ìÉôʬÆÃÄê¡¢ÉÕÃÍ¡¢»»½Ñ¡¦ÏÀÍý±é»»Åù¤Î´ðËÜŪ ±é»»»Ò (¤Ä¤Þ¤êÄ̾ï foo(a, b, ...) ¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¤â¤Î)¡£ ¤³¤ì¤é¤Ï°Ê²¼¤Î 1-, 2-, ¤½¤·¤Æ N-°ú¿ô´Ø¿ô¤Ç¤¢¤ë:

     
              [    [[    $
    <-   <<-  [<-  [[<-  $<-
    ---------------------------------------
    +    -    *    /     ^    %%   %*%  %/%
    <    <=   ==   !=    >=   >
    |    ||   &    &&    !
    

  3. °Ê²¼¤Î´Ø¿ô¥°¥ë¡¼¥×¤Î¤É¤ì¤«¤Ë°¤¹¤ë "Äã¿å½à" ¤Î 0- ¤Þ¤¿¤Ï 1-°ú¿ô´Ø¿ô:

    1. ñ°ì°ú¿ô¤Î´ðËÜ¿ô³Ø´Ø¿ô¡¢¤Ä¤Þ¤ê

       
      sign    abs
      floor   ceiling
      ----------------------
      sqrt    exp
      cos     sin      tan
      acos    asin     atan
      cosh    sinh     tanh
      acosh   asinh    atanh
      ----------------------
      cumsum  cumprod
      cummax  cummin
      ----------------------
      Im      Re
      Arg     Conj     Mod
      

      ¤·¤«¤·¤Ê¤¬¤é R ´Ø¿ô log ¤Ï̾Á°ÉÕ¤­¤Î¥ª¥×¥·¥ç¥ó°ú¿ô base ¤ò»ý¤Á¡¢½¾¤Ã¤Æ¼¡¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë

       
      log <- function(x, base = exp(1)) {
        if(missing(base))
          .Internal(log(x))
        else
          .Internal(log(x, base))
      }
      

      ¤³¤È¤Ë¤è¤ê log(x = pi, base = 2) ¤¬ log(base = 2, x = pi) ¤Ë°ìÃפ¹¤ë¤³¤È¤¬ Êݾڤµ¤ì¤ë¡£

    2. ¼¡¤Î¤è¤¦¤Ê "¥×¥í¥°¥é¥ß¥ó¥°" °Ê³°¤Ç¤ÏÌÇ¿¤Ë»È¤ï¤ì¤Ê¤¤(¤Ä¤Þ¤ê¡¢¼ç¤Ë¾¤Î´Ø¿ô¤ÎÆâÉô¤Ç»È¤ï¤ì¤ë)´Ø¿ô

       
      nargs        missing
      interactive  is.xxx
      .Primitive   .Internal   .External
      symbol.C     symbol.For
      globalenv    pos.to.env  unclass
      

      (¤³¤³¤Ç xxx ¤ÏÌó30¸Ä¤Î°Û¤Ê¤Ã¤¿°ÕÌ£¤ò»ý¤Ä¡¢Î㤨¤Ð function, vector, numeric, Åù)¡£

    3. ¥×¥í¥°¥é¥ß¥ó¥°¤È¥»¥Ã¥·¥ç¥ó¤Î´ÉÍý¤ò¤¹¤ëµ¡Ç½

       
      debug    undebug    trace  untrace
      browser  proc.time
      

  4. °Ê²¼¤Î´ðËÜŪÉÕÃͤÈÃê½Ð´Ø¿ô

     
    .Alias      environment<-
    length      length<-
    class       class<-
    attr        attr<-
    attributes  attributes<-
    dim         dim<-
    dimnames    dimnames<-
    

  5. °Ê²¼¤Î¶Ï¤«¤Ê N-°ú¿ô´Ø¿ô¤Ï¸úΨÀ­¤Î¤¿¤á¤Ë "primitive" ¤È¤µ¤ì¤Æ¤¤¤ë¡£ ̾Á°ÉÕ¤­°ú¿ô¤òŬÀµ¤Ë°·¤¦¤¿¤á¤Ë¤ÏÃí°Õ¤¬¤¤¤ë:

     
    :          ~          c           list        unlist
    call       as.call    expression  substitute
    UseMethod  invisible
    .C         .Fortran   .Call
    


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A.2 R ¥³¡¼¥É¤Î¸¡ºº

(R ³«È¯¼Ô¤È¤·¤Æ) R ¤Î base (R ¤È¤È¤â¤ËÇÛÉÛ¤µ¤ì¤ëÁ´¤Æ¤Î¥Ñ¥Ã¥±¡¼¥¸) ¤Ë¿·¤·¤¤´Ø¿ô¤òÉÕ¤±²Ã¤¨¤ë ¤È¤­¤Ï¡¢make test-Specific ¤â¤·¤¯¤ÏÆÃ¤Ë cd tests; make no-segfault.Rout ¤¬°ÍÁ³¤È¤·¤Æ ưºî(ÂÐÏ÷¿¤Î¥æ¡¼¥¶¡¼¤Î²ðÆþ̵¤·¤Ç¡¢¤Þ¤¿Ã±ÆÈ¤Çư¤¯·×»»µ¡¾å¤Ç)¤¹¤ë¤«¤É¤¦¤«¤ò¿µ½Å¤Ë¸¡ºº¤¹¤ëɬÍפ¬¤¢¤ë¡£ ¤â¤·¿·¤·¤¤´Ø¿ô¤¬¥¤¥ó¥¿¥Í¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤·¤¿¤ê¡¢¤Þ¤¿¤Ï GUI ·¿ÂÐÏäòɬÍפȤ¹¤ë¤Ê¤é¤Ð¡¢ ¤½¤Î̾Á°¤ò `tests/make-no-segfault.R' Ãæ¤Î "stop list" ¤ËÉÕ¤±²Ã¤¨¤ÆÍߤ·¤¤¡£


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

B. R ¤Î¥³¡¼¥Ç¥£¥ó¥°¤Îɸ½à

R ¤Ï Linux¡¢¤Û¤È¤ó¤É¤Î Unix ¤ÎÊѼ32-bit ÈǤΠWindows¡¢¤½¤·¤Æ¤Ä¤¤¤Ë¤Ï(ºÆ¤Ó) Power Mac ¤È¤¤¤Ã¤¿Â¿¤¯¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Çư¤¯¤³¤È¤òÌܻؤ·¤Æ¤¤¤ë¡£½¾¤Ã¤Æ¡¢R ¤Î´ðËÜÇÛÉÛʪ¤Ø¤ÎÄɲä䥢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤ò Ä󶡤¹¤ë¤³¤È¤Ë¤è¤ê R ¤ò³ÈÄ¥¤¹¤ë¤È¤­¤Ï¡¢¾¯¿ô¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤À¤±¤Ë¸ÇÍ­¤ÎÆÃÀ­¤Ë°Í¸¤¹¤ë¤³¤È¤Ï¡¢¤â¤·¤½¤ì¤¬ ²Äǽ¤Ê¤éÈò¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÆÃ¤Ë¡¢Â¿¤¯¤Î R ³«È¯¼Ô¤Ï GNU ¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¤¤¤ë¤¬¡¢É¸½àŪ¤Ê ¥Ä¡¼¥ë¤Ø¤Î GNU ³ÈÄ¥¤òÍøÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£´ö¤Ä¤«¤Î¾¤Î¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ï¸øÁ³¤È¡¢Î㤨¤Ð GNU make ¤ä GNU C++ ¥³¥ó¥Ñ¥¤¥é¡¼¤ò»È¤Ã¤Æ¤¤¤ë¤¬¡¢R ¤Ï»ÈÍѤ·¤Ê¤¤¡£ ¤·¤«¤·¤Ê¤¬¤é R ¤Ï GNU ¥×¥í¥¸¥§¥¯¥È¤Ç¤¢¤ê¡¢GNU ¤Î¥³¡¼¥Ç¥£¥ó¥°É¸½à¤Ï ½ÐÍè¤ë¸Â¤ê¼é¤é¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£

°Ê²¼¤Î¥Ä¡¼¥ë¤Ï R ¤Î³ÈÄ¥¤Ç "°ÂÁ´¤Ë²¾Äê¤Ç¤­¤ë"¡£

²Ã¤¨¤Æ¡¢°Ê²¼¤Î¥Ä¡¼¥ë¤¬¤¢¤ë¼ï¤Îºî¶È¤ËɬÍפˤʤ롣

¤Þ¤¿¥³¡¼¥É¤¬Â¾¿Í¤Ë¤âÍý²ò²Äǽ¤ÊÉ÷¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤¬½ÅÍפǤ¢¤ë¡£ ¤³¤ì¤ÏÆÃ¤ËÌäÂê¤ò²ò·è¤·¡¢¤½¤ì¤À¤±¤ÇÍý²ò²Äǽ¤ÊÊÑ¿ô̾¤òÍøÍѤ·¡¢¥³¡¼¥É¤ËÃí¼á¤ò »Ü¤·¡¢Å¬Àµ¤Ë½ñ¼°²½¤¹¤ë¤Î¤ËÍ­ÍѤǤ¢¤ë¡£R ¤Î¥³¥¢¥Á¡¼¥à¤Ï R ¤È C (¤½¤·¤ÆÆ±ÍÍ¤Ë Perl) ¥³¡¼¥É¤Ë4ʸ»úʬ¡¢Rd ½ñ¼°¤Ë¤Ï2ʸ»úʬ¤Î´ðËÜ¥¤¥ó¥Ç¥ó¥È¤ò»Ü¤¹¤³¤È¤ò ¿ä¾©¤¹¤ë¡£Emacs ¤Î¥æ¡¼¥¶¡¼¤Ï°Ê²¼¤ò½é´ü²½¥Õ¥¡¥¤¥ë¤Î°ì¤Ä¤ËÃÖ¤¯¤³¤È¤Ë¤è¤ê¤³¤Î¥¤¥ó¥Ç¥ó¥È¥¹¥¿¥¤¥ë¤ò °Ü¿¢¤Ç¤­¤ë¡£

 
;;; C
(add-hook 'c-mode-hook
          (lambda () (c-set-style "bsd")))
;;; ESS
(add-hook 'ess-mode-hook
          (lambda ()
            (ess-set-style 'C++)
            ;; Because
            ;;                                 DEF GNU BSD K&R C++
            ;; ess-indent-level                  2   2   8   5   4
            ;; ess-continued-statement-offset    2   2   8   5   4
            ;; ess-brace-offset                  0   0  -8  -5  -4
            ;; ess-arg-function-offset           2   4   0   0   0
            ;; ess-expression-offset             4   2   8   5   4
            ;; ess-else-offset                   0   0   0   0   0
            ;; ess-close-brace-offset            0   0   0   0   0
            (add-hook 'local-write-file-hooks
                      (lambda ()
                        (nuke-trailing-whitespace)))))
;;; Perl
(add-hook 'perl-mode-hook
          (lambda () (setq perl-indent-level 4)))

(Emacs ¤Î C ¤È R ¥â¡¼¥É¤ËÂФ¹¤ë 'GNU' ¥¹¥¿¥¤¥ë¤Ï2ʸ»ú¤Î´ðËÜ¥¤¥ó¥Ç¥ó¥È¤òÍøÍѤ·¡¢ ¤³¤ì¤Ï¶¹¤¤Éý¤Î¥Õ¥©¥ó¥È¤ò»È¤Ã¤¿¤È¤­¹½Â¤¤ò½½Ê¬ÌÀÎÆ¤Ë¤Ïɽ¼¨¤·¤Ê¤¤Íͤ˷è¤á¤é¤ì¤¿¡£)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

´Ø¿ô¤ÈÊÑ¿ô¤Îº÷°ú

Jump to:   *   .   \  
B   C   D   E   F   G   I   L   M   N   P   R   S   T   U   V  

Index Entry Section

*
*R_ExpandFileName5.8 ¾®Æ»¶ñ´Ø¿ô

.
.C4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran
.Call4.6 C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦
.Call4.7.1 .Call ¤Î¸Æ¤Ó½Ð¤·
.External4.6 C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦
.External4.7.2 .External ¤Î¸Æ¤Ó½Ð¤·
.Fortran4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran
.InternalA.1 .Internal ¤È .Primitive
.PrimitiveA.1 .Internal ¤È .Primitive
.Random.seed5.3 Íð¿ôÀ¸À®

\
\alias2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\arguments2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\author2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\bold2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
\code2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
\deqn2.6 ¿ô¼°
\describe2.4 ¥ê¥¹¥È¤Èɽ
\description2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\details2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\dontrun2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\email2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
\emph2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
\enumerate2.4 ¥ê¥¹¥È¤Èɽ
\eqn2.6 ¿ô¼°
\examples2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\file2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
\format2.1.2 ¥Ç¡¼¥¿¥»¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È²½
\itemize2.4 ¥ê¥¹¥È¤Èɽ
\name2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\note2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\R2.7 ÁÞÆþ
\references2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\section2.2 Àá¶èʬ
\seealso2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\source2.1.2 ¥Ç¡¼¥¿¥»¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È²½
\synopsis2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\tabular2.4 ¥ê¥¹¥È¤Èɽ
\testonly2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\title2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\url2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
\usage2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
\value2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô

B
bessel_i5.7.2 ¿ô³Ø´Ø¿ô
bessel_i5.7.2 ¿ô³Ø´Ø¿ô
bessel_j5.7.2 ¿ô³Ø´Ø¿ô
bessel_j5.7.2 ¿ô³Ø´Ø¿ô
bessel_k5.7.2 ¿ô³Ø´Ø¿ô
bessel_k5.7.2 ¿ô³Ø´Ø¿ô
bessel_y5.7.2 ¿ô³Ø´Ø¿ô
bessel_y5.7.2 ¿ô³Ø´Ø¿ô
beta5.7.2 ¿ô³Ø´Ø¿ô
beta5.7.2 ¿ô³Ø´Ø¿ô

C
Calloc5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê
CAR4.7.2 .External ¤Î¸Æ¤Ó½Ð¤·
CDR4.7.2 .External ¤Î¸Æ¤Ó½Ð¤·
choose5.7.2 ¿ô³Ø´Ø¿ô
choose5.7.2 ¿ô³Ø´Ø¿ô
cPsort5.8 ¾®Æ»¶ñ´Ø¿ô

D
defineVar4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë
digamma5.7.2 ¿ô³Ø´Ø¿ô
digamma5.7.2 ¿ô³Ø´Ø¿ô
dyn.load4.3 dyn.load ¤È dyn.unload
dyn.unload4.3 dyn.load ¤È dyn.unload

E
exp_rand5.3 Íð¿ôÀ¸À®

F
FALSE5.7.4 ¿ô³ØÄê¿ô
findVar4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë
fmax25.7.3 ¾®Æ»¶ñ
fmin25.7.3 ¾®Æ»¶ñ
fmod5.7.3 ¾®Æ»¶ñ
fprec5.7.3 ¾®Æ»¶ñ
Free5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê
fround5.7.3 ¾®Æ»¶ñ
fsign5.7.3 ¾®Æ»¶ñ
ftrunc5.7.3 ¾®Æ»¶ñ

G
gammafn5.7.2 ¿ô³Ø´Ø¿ô
gammafn5.7.2 ¿ô³Ø´Ø¿ô
getAttrib4.6.4 °À­
GetRNGstate5.3 Íð¿ôÀ¸À®

I
imax25.7.3 ¾®Æ»¶ñ
imin25.7.3 ¾®Æ»¶ñ
install4.6.4 °À­
iPsort5.8 ¾®Æ»¶ñ´Ø¿ô
ISNA4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ
ISNA5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
ISNAN4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ
ISNAN5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ

L
lbeta5.7.2 ¿ô³Ø´Ø¿ô
lbeta5.7.2 ¿ô³Ø´Ø¿ô
lchoose5.7.2 ¿ô³Ø´Ø¿ô
lchoose5.7.2 ¿ô³Ø´Ø¿ô
lgammafn5.7.2 ¿ô³Ø´Ø¿ô
lgammafn5.7.2 ¿ô³Ø´Ø¿ô
library.dynam4.3 dyn.load ¤È dyn.unload
log1p5.7.3 ¾®Æ»¶ñ

M
M_E5.7.4 ¿ô³ØÄê¿ô
M_PI5.7.4 ¿ô³ØÄê¿ô

N
NA_REAL5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
norm_rand5.3 Íð¿ôÀ¸À®

P
pentagamma5.7.2 ¿ô³Ø´Ø¿ô
pentagamma5.7.2 ¿ô³Ø´Ø¿ô
prompt2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
PROTECT4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë
PutRNGstate5.3 Íð¿ôÀ¸À®
pythag5.7.3 ¾®Æ»¶ñ

R
R CMD build1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ
R CMD check1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ
R CMD Rd2dvi2.9 Rd ½ñ¼°¤Î½èÍý
R CMD Rd2txt2.9 Rd ½ñ¼°¤Î½èÍý
R CMD Rdconv2.9 Rd ½ñ¼°¤Î½èÍý
R CMD Rdindex2.9 Rd ½ñ¼°¤Î½èÍý
R CMD Sd2Rd2.9 Rd ½ñ¼°¤Î½èÍý
R CMD SHLIB4.4 ¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ®
R_alloc5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö
R_csort5.8 ¾®Æ»¶ñ´Ø¿ô
R_FINITE5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
R_IsNaN5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
R_isort5.8 ¾®Æ»¶ñ´Ø¿ô
R_max_col5.8 ¾®Æ»¶ñ´Ø¿ô
R_NegInf5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
R_PosInf5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
R_pow5.7.3 ¾®Æ»¶ñ
R_pow_di5.7.3 ¾®Æ»¶ñ
R_rsort5.8 ¾®Æ»¶ñ´Ø¿ô
R_Version5.9 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤È¥Ð¡¼¥¸¥ç¥ó¾ðÊó
Realloc5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê
REprintf5.5 ɽ¼¨
REvprintf5.5 ɽ¼¨
revsort5.8 ¾®Æ»¶ñ´Ø¿ô
Rprintf5.5 ɽ¼¨
Rprof3.2 R ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ë
rPsort5.8 ¾®Æ»¶ñ´Ø¿ô
rsort_with_index5.8 ¾®Æ»¶ñ´Ø¿ô
Rvprintf5.5 ɽ¼¨

S
S_alloc5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö
S_realloc5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö
seed_in5.3 Íð¿ôÀ¸À®
seed_out5.3 Íð¿ôÀ¸À®
SET_STRING_ELT4.6.8 R ¤Î¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Ë±÷¤±¤ëÊѹ¹ÅÀ
SET_VECTOR_ELT4.6.8 R ¤Î¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Ë±÷¤±¤ëÊѹ¹ÅÀ
setAttrib4.6.4 °À­
setVar4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë
sign5.7.3 ¾®Æ»¶ñ
STRING_ELT4.6.8 R ¤Î¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Ë±÷¤±¤ëÊѹ¹ÅÀ
symbol.C4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran
symbol.For4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran
system4.1 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹
system.time4.1 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹

T
tetragamma5.7.2 ¿ô³Ø´Ø¿ô
tetragamma5.7.2 ¿ô³Ø´Ø¿ô
trigamma5.7.2 ¿ô³Ø´Ø¿ô
trigamma5.7.2 ¿ô³Ø´Ø¿ô
TRUE5.7.4 ¿ô³ØÄê¿ô

U
unif_rand5.3 Íð¿ôÀ¸À®
UNPROTECT4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë
UNPROTECT_PTR4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë

V
VECTOR_ELT4.6.8 R ¤Î¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Ë±÷¤±¤ëÊѹ¹ÅÀ
vmaxget5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö
vmaxset5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö

Jump to:   *   .   \  
B   C   D   E   F   G   I   L   M   N   P   R   S   T   U   V  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

³µÇ°¤Îº÷°ú

Jump to:   ¥     ·   ¿   Â   Æ   Ê   Î  
B   C   D   F   G   I   R  

Index Entry Section

¥
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹4.1 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹
¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë
¥¯¥é¥¹4.6.5 ¥¯¥é¥¹
¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran
¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹4.7 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .Call ¤È .External
¥Ç¥Ð¥Ã¥°4.9 ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°
¥Ç¥Ð¥Ã¥°»þ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀººº4.9.2 ¥Ç¥Ð¥Ã¥°»þ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀººº
¥É¥­¥å¥á¥ó¥È, ½ñ¤¯2. R ¤Î¥É¥­¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯
¥É¥­¥å¥á¥ó¥ÈÃæ¤Î¿ô¼°2.6 ¿ô¼°
¥É¥­¥å¥á¥ó¥ÈÃæ¤ÎÁê¸ß»²¾È2.5 Áê¸ß»²¾È
¥Ñ¥Ã¥±¡¼¥¸1. R ¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
¥Ñ¥Ã¥±¡¼¥¸¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê1.1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê
¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Â¤1.1 ¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Â¤
¥Ñ¥Ã¥±¡¼¥¸¤Îº­1.1.4 ¥Ñ¥Ã¥±¡¼¥¸¤Îº­
¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë1. R ¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ
¥Ñ¥Ã¥±¡¼¥¸ºîÀ®Ì¿Îá1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ
¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îʸ¾Ï2.8 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îʸ¾Ï
¥×¥í¥Õ¥¡¥¤¥ë3.2 R ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ë
¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÊÝ´É4.6.2 ¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÊÝ´É
¥ê¥¹¥È¤Î½èÍý4.6.6 ¥ê¥¹¥È¤Î½èÍý

¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ®4.4 ¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ®

·
·ç»ÃÍ4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ
·ç»ÃÍ5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ

¿
¿ôÃÍÈùʬ4.8.2 ¿ôÃÍÈùʬ¤Î·×»»

Â
°À­4.6.4 °À­

Æ
ưŪ¤ÊÆÉ¤ß¹þ¤ß4.3 dyn.load ¤È dyn.unload

Ê
ʸ¾ÏÃæ¤Î¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
ʸ¾ÏÃæ¤Î¥ê¥¹¥È¤Èɽ2.4 ¥ê¥¹¥È¤Èɽ
ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë
ÊÑ¿ô¤òÀßÄꤹ¤ë4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë

Î
ÎßÀÑ´í¸±Î¨5.7.1 ʬÉÛ´Ø¿ô
ÎíÅÀ¤ò¸«ÉÕ¤±¤ë4.8.1 ÎíÅÀ¤ò¸«ÉÕ¤±¤ë

B
Bessel ´Ø¿ô5.7.2 ¿ô³Ø´Ø¿ô
Beta ´Ø¿ô5.7.2 ¿ô³Ø´Ø¿ô

C
C ¤«¤é¤Î¥¨¥é¡¼½èÍý5.2 ¥¨¥é¡¼½èÍý
C ¤«¤é¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó5.9 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤È¥Ð¡¼¥¸¥ç¥ó¾ðÊó
C ¤«¤é¤Î¥á¥â¥ê³ä¤êÅö¤Æ5.1 ¥á¥â¥ê³ä¤êÅö¤Æ
C ¤«¤é¤Î¾®¤µ¤Ê´Ø¿ô5.8 ¾®Æ»¶ñ´Ø¿ô
C ¤«¤é¤Î¿ôÃͲòÀÏ¥µ¥Ö¥ë¡¼¥Á¥ó5.7 ¿ôÃͲòÀÏ¥µ¥Ö¥ë¡¼¥Á¥ó
C ¤«¤é¤Îɽ¼¨5.5 ɽ¼¨
C ¤«¤é¤ÎʬÉÛ´Ø¿ô5.7.1 ʬÉÛ´Ø¿ô
C ¤«¤é¤ÎÍð¿ô5.7.1 ʬÉÛ´Ø¿ô
C ¤ÎÍð¿ô5.3 Íð¿ôÀ¸À®
C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦4.6 C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦
C++ ¥³¡¼¥É, ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹4.5 C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹4.5 C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
CRAN1.4 CRAN ¤Ø¤ÎÅê¹Æ
CRAN ¤Ø¤ÎÅê¹Æ1.4 CRAN ¤Ø¤ÎÅê¹Æ

D
DESCRIPTION ¥Õ¥¡¥¤¥ë1.1.1 DESCRIPTION ¥Õ¥¡¥¤¥ë

F
FORTRAN ¤«¤é C ¤ò¸Æ¤Ö¡¢¤Þ¤¿¤½¤ÎµÕ5.6 FORTRAN ¤«¤é C ¤ò¸Æ¤Ö¡¢¤Þ¤¿¤½¤ÎµÕ
FORTRAN¤«¤é¤Îɽ¼¨5.5.1 FORTRAN¤«¤é¤Îɽ¼¨

G
Gamma ´Ø¿ô5.7.2 ¿ô³Ø´Ø¿ô

I
IEEE ÆÃ¼ìÃÍ4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ
IEEE ÆÃ¼ìÃÍ5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ

R
R ¤Î·¿¤Î¾ÜºÙ4.6.3 R ¤Î·¿¤Î¾ÜºÙ
R ¤Îɽ¸½¼°¤ò C ¤«¤éɾ²Á¤¹¤ë4.8 R ¤Îɽ¸½¼°¤ò C ¤«¤éɾ²Á¤¹¤ë
R ¥³¡¼¥É¤ÎÀ°ÆÜ3.1 R ¥³¡¼¥É¤ÎÀ°ÆÜ
R ¥Ñ¥Ã¥±¡¼¥¸¤ò¸¡ºº¤¹¤ë1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ
Rd ½ñ¼°¤Î½èÍý2.9 Rd ½ñ¼°¤Î½èÍý

Jump to:   ¥     ·   ¿   Â   Æ   Ê   Î  
B   C   D   F   G   I   R  


[Top] [Contents] [Index] [ ? ]

Footnotes

(1)

¤³¤ì¤Ï´°Á´¤Ë¤Ï¿¿¼Â¤Ç¤Ï¤Ê¤¤¡£ÂФˤʤäƤ¤¤Ê¤¤Ãæ³ç¸Ì¤ÏÌäÂê¤òÀ¸¤¸¡¢¥¨¥¹¥±¡¼¥×¤¹¤Ù¤­¤Ç¤¢¤ë¡£ Î㤨¤Ð¥Õ¥¡¥¤¥ë `Paren.Rd' Ãæ¤Î¼ÂÎã¤ÎÀá¤ò¸«¤è¡£

(2)

SEXP ¤Ï Simple EXPression, common in LISP-like language syntaxes ¤Î´Êά·Á¤Ç¤¢¤ë¡£


[Top] [Contents] [Index] [ ? ]

Table of Contents

¼Õ¼­
1. R ¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
1.1 ¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Â¤
1.1.1 DESCRIPTION ¥Õ¥¡¥¤¥ë
1.1.2 INDEX ¥Õ¥¡¥¤¥ë
1.1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê
1.1.4 ¥Ñ¥Ã¥±¡¼¥¸¤Îº­
1.2 ¥³¥ó¥Õ¥£¥®¥å¥¢¤È¸åÊÒÉÕ¤±
1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ
1.4 CRAN ¤Ø¤ÎÅê¹Æ
2. R ¤Î¥É¥­¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯
2.1 Rd ½ñ¼°
2.1.1 ¥É¥­¥å¥á¥ó¥ÈÍÑ´Ø¿ô
2.1.2 ¥Ç¡¼¥¿¥»¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È²½
2.2 Àá¶èʬ
2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥­¥¹¥È
2.4 ¥ê¥¹¥È¤Èɽ
2.5 Áê¸ß»²¾È
2.6 ¿ô¼°
2.7 ÁÞÆþ
2.8 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îʸ¾Ï
2.9 Rd ½ñ¼°¤Î½èÍý
3. R ¥³¡¼¥É¤ÎÀ°Íý¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°
3.1 R ¥³¡¼¥É¤ÎÀ°ÆÜ
3.2 R ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ë
4. ¥·¥¹¥Æ¥à¤È¾¸À¸ì´Ö¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
4.1 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹
4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .C ¤È .Fortran
4.3 dyn.load ¤È dyn.unload
4.4 ¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ®
4.5 C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
4.6 C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦
4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë
4.6.2 ¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÊÝ´É
4.6.3 R ¤Î·¿¤Î¾ÜºÙ
4.6.4 °À­
4.6.5 ¥¯¥é¥¹
4.6.6 ¥ê¥¹¥È¤Î½èÍý
4.6.7 ÊÑ¿ô¤ò¸«ÉÕ¤±¤ë¡¦ÀßÄꤹ¤ë
4.6.8 R ¤Î¥Ð¡¼¥¸¥ç¥ó 1.2 ¤Ë±÷¤±¤ëÊѹ¹ÅÀ
4.7 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô .Call ¤È .External
4.7.1 .Call ¤Î¸Æ¤Ó½Ð¤·
4.7.2 .External ¤Î¸Æ¤Ó½Ð¤·
4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ
4.8 R ¤Îɽ¸½¼°¤ò C ¤«¤éɾ²Á¤¹¤ë
4.8.1 ÎíÅÀ¤ò¸«ÉÕ¤±¤ë
4.8.2 ¿ôÃÍÈùʬ¤Î·×»»
4.9 ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°
4.9.1 ưŪ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¡¼¥ÉÃæ¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸«ÉÕ¤±¤ë
4.9.2 ¥Ç¥Ð¥Ã¥°»þ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀººº
5. R ¤Î API: C ¥³¡¼¥É¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È
5.1 ¥á¥â¥ê³ä¤êÅö¤Æ
5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö
5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê
5.2 ¥¨¥é¡¼½èÍý
5.3 Íð¿ôÀ¸À®
5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
5.5 ɽ¼¨
5.5.1 FORTRAN¤«¤é¤Îɽ¼¨
5.6 FORTRAN ¤«¤é C ¤ò¸Æ¤Ö¡¢¤Þ¤¿¤½¤ÎµÕ
5.7 ¿ôÃͲòÀÏ¥µ¥Ö¥ë¡¼¥Á¥ó
5.7.1 ʬÉÛ´Ø¿ô
5.7.2 ¿ô³Ø´Ø¿ô
5.7.3 ¾®Æ»¶ñ
5.7.4 ¿ô³ØÄê¿ô
5.8 ¾®Æ»¶ñ´Ø¿ô
5.9 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤È¥Ð¡¼¥¸¥ç¥ó¾ðÊó
5.10 ¤³¤ì¤é¤Î´Ø¿ô¤ò¼«Ê¬¼«¿È¤Î C ¥³¡¼¥É¤Ç»È¤¦
A. R ¤Î¡ÊÆâÉô¤Î¡Ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë´Ø¤¹¤ë»¨Â¿¤Ê¤³¤È
A.1 .Internal ¤È .Primitive
A.2 R ¥³¡¼¥É¤Î¸¡ºº
B. R ¤Î¥³¡¼¥Ç¥£¥ó¥°¤Îɸ½à
´Ø¿ô¤ÈÊÑ¿ô¤Îº÷°ú
³µÇ°¤Îº÷°ú

[Top] [Contents] [Index] [ ? ]

Short Table of Contents

¼Õ¼­
1. R ¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
2. R ¤Î¥É¥­¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯
3. R ¥³¡¼¥É¤ÎÀ°Íý¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°
4. ¥·¥¹¥Æ¥à¤È¾¸À¸ì´Ö¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
5. R ¤Î API: C ¥³¡¼¥É¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È
A. R ¤Î¡ÊÆâÉô¤Î¡Ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë´Ø¤¹¤ë»¨Â¿¤Ê¤³¤È
B. R ¤Î¥³¡¼¥Ç¥£¥ó¥°¤Îɸ½à
´Ø¿ô¤ÈÊÑ¿ô¤Îº÷°ú
³µÇ°¤Îº÷°ú

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack previous or up-and-previous section 1.1
[ Up ] Up up section 1.2
[ >> ] FastForward next or up-and-next section 1.3
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:

This document was generated by Shigeru Mase on January, 13 2002 using texi2html