| [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Saikat DebRoy¡Ê.Call ¤È .External ¤Î»ÈÍÑË¡¤Ë´Ø¤¹¤ëºÇ½é¤ÎÁð¹Æ¤ò½ñ¤¤¤¿¡Ë
¤È Adrian Trapletti¡ÊC++ ¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤ò¤¯¤ì¤¿¡Ë¤Î¹×¸¥¤Ë¸ü¤¯
´¶¼Õ¤¹¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
¥Ñ¥Ã¥±¡¼¥¸¤Ï¥ª¥×¥·¥ç¥ó¤Î¥³¡¼¥É¤ÈÉÕ°¥É¥¥å¥á¥ó¥È¤òÆÉ¤ß¹þ¤àµ¡¹½¤òÄ󶡤¹¤ë¡£ R ¤ÎÇÛÉÛʪ¤Ï¡¢eda, mva, ¤½¤·¤Æ stepfun ¤È¤¤¤Ã¤¿¡¢´ö¤Ä¤«¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò ´Þ¤à¡£
1.1 ¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Â¤ 1.2 ¥³¥ó¥Õ¥£¥®¥å¥¢¤È¸åÊÒÉÕ¤± 1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ 1.4 CRAN ¤Ø¤ÎÅê¹Æ
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
°ì¤Ä¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ï¡¢¥Õ¥¡¥¤¥ë `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] | [ ? ] |
`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] | [ ? ] |
¥Õ¥¡¥¤¥ë `INDEX' ¤Ï¥Ñ¥Ã¥±¡¼¥¸Ãæ¤Î½½Ê¬¶½Ì£¤¢¤ë³Æ¥ª¥Ö¥¸¥§¥¯¥ÈËè¤Ë¡¢Ì¾Á°¤Èµ½Ò¤òÍ¿¤¨¤ë°ì¹Ô¤ò
´Þ¤à¡Êprint ¥á¥½¥Ã¥ÉÅù¤ÎÄ̾ïÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤´Ø¿ô¤Ï´Þ¤á¤ëɬÍפÏ̵¤¤¤«¤âÃΤì¤Ê¤¤¡Ë¡£
¤¢¤Ê¤¿¤Î¥·¥¹¥Æ¥à¤Ç Perl ¤¬»È¤¨¤ë¤«¡¢package builder (see section 1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ) ¤ò»È¤¨¤Ð¡¢
R CMD Rdindex man > INDEX Åù¤Îµ¡Ç½¤Ç¤³¤Î¥Õ¥¡¥¤¥ë¤ò¼«Æ°Åª¤Ë¤Ä¤¯¤ê½Ð¤¹¤³¤È¤¬¤Ç¤¤ë¤³¤È¤ò
Ãí°Õ¤·¤è¤¦¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
`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] | [ ? ] |
´ö¤Ä¤«¤Î¥Ñ¥Ã¥±¡¼¥¸¤òº, 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] | [ ? ] |
¤â¤·¤¢¤ë¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ë¤ÎÁ°¤Ë¥·¥¹¥Æ¥à°Í¸¤Î¤¢¤ë¥³¥ó¥Õ¥®¥å¥ì¡¼¥·¥ç¥ó
¤òɬÍפȤ¹¤ë¤Ê¤é¤Ð¡¢Â¾¤ÎÁ´¤Æ¤Î¼Â¹Ô¤ÎÁ°¤Ë 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] | [ ? ] |
R ¤Î¥Ñ¥Ã¥±¡¼¥¸¸¡ºº¥×¥í¥°¥é¥à R CMD check ¤òÍѤ¤¡¢R ¤Î¥½¡¼¥¹¥Ñ¥Ã¥±¡¼¥¸¤¬Àµ¤·¤¯Æ°¤¯¤«¤É¤¦¤«
¸¡ºº¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£(Windows ¤Ç¤ÎÂбþ¤¹¤ëÌ¿Îá¤Ï Rcmd check ¤Ç¤¢¤ë¡£)
¤³¤ì¤Ï°ìÏ¢¤Î¸¡ºº¤ò¼Â¹Ô¤¹¤ë¡£
\name, \alias ¤½¤·¤Æ \keyword Í󤬸¡ºº¤µ¤ì¤ë¡£
\examplessee section 2. R ¤Î¥É¥¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯¤ò¤ß¤è)¡£
ÌÞÏÀ¡¢¸ø³«¤µ¤ì¤¿¥Ñ¥Ã¥±¡¼¥¸¤Ï¾¯¤¯¤È¤â¤½¤ì¼«¿È¤ÎÎã¤ò¼Â¹Ô¤Ç¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
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] | [ ? ] |
CRAN ¤Ï R ¤ÎÇÛÉÛʪ¤È¹×¸¥¥³¡¼¥É¡¢ÆÃ¤Ë R ¥Ñ¥Ã¥±¡¼¥¸¡¢¤ò ¤ª¤¤¤Æ¤¢¤ë WWW ¥µ¥¤¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¤¢¤ë¡£R ¤Î¥æ¡¼¥¶¡¼¤Ï¶¦Æ±¥×¥í¥¸¥§¥¯¥È¤Ë »²²Ã¤·¡¢¼«Ê¬¼«¿È¤Ç¹×¸¥¤·¤ÆÍߤ·¤¤¡£
¥Ñ¥Ã¥±¡¼¥¸ mypkg ¤òÅê¹Æ¤¹¤ëÁ°¤Ë¡¢¤½¤ì¤¬´°Á´¤ÇŬÀµ¤Ë°Ü¿¢½ÐÍè¤ë¤«¤É¤¦¤«¸¡ºº¤¹¤ë¤¿¤á¤Ë ¼¡¤Î¥¹¥Æ¥Ã¥×¤ò¼Â¹Ô¤·¤ÆÍߤ·¤¤¡£
R CMD check ¤ò»È¤Ã¤Æ¥Ñ¥Ã¥±¡¼¥¸ ¤¬°Ü¿¢¤Ç¤¡¢¤½¤Î¼ÂÎã¤ò¼Â¹Ô½ÐÍè¤ë¤«¤É¤¦¤«¡¢¥É¥¥å¥á¥ó¥È¤¬
´°Á´¤Ç½èÍý²Äǽ¤«¤É¤¦¤«¡¢¤ò¸¡ºº¤¹¤ë¡£
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.1 Rd ½ñ¼° 2.2 Àá¶èʬ 2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥¥¹¥È 2.4 ¥ê¥¹¥È¤Èɽ 2.5 Áê¸ß»²¾È 2.6 ¿ô¼° 2.7 ÁÞÆþ 2.8 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇͤÎʸ¾Ï
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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] | [ ? ] |
R ¥ª¥Ö¥¸¥§¥¯¥È(ÆÃ¤Ë´Ø¿ô)¤Î¥É¥¥å¥á¥ó¥È¤Ë»È¤ï¤ì¤ë´ðËÜŪ ¥Þ¡¼¥¯¥¢¥Ã¥×Ì¿Î᤬¤³¤ÎÉûÀá¤ÇÍ¿¤¨¤é¤ì¤ë¡£
\name{file}
\alias{topic}
\alias ¤Ï¥Õ¥¡¥¤¥ë¤¬ÀâÌÀ¤¹¤ëÁ´¤Æ¤Î "ÏÃÂê" ¤ò»ØÄꤹ¤ë¡£
¤³¤Î¾ðÊó(¥Õ¥¡¥¤¥ë̾¤È¤È¤â¤Ë)¤Ï¥ª¥ó¥é¥¤¥ó(ʿʸ¤äHTML)¤Î¥Ø¥ë¥×¥·¥¹¥Æ¥à¤Ë¤è¤ë
¸¡º÷ÍѤκ÷°ú¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë½¸¤á¤é¤ì¤ë¡£
Ê£¿ô¤Î \alias ¹àÌܤ¬¤¢¤Ã¤Æ¤âÎɤ¤¡£¤·¤Ð¤·¤ÐÊ£¿ô¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ò°ì¤Ä¤Î
¥Õ¥¡¥¤¥ë¤ÇÀâÌÀ¤¹¤ë¤Î¤¬ÊØÍø¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ë `Normal.Rd' ¤ÏÀµµ¬Ê¬ÉÛ¤ÎÌ©ÅÙ¡¢Ê¬ÉÛ´Ø¿ô¡¢
¥¯¥©¥ó¥¿¥¤¥ë´Ø¿ô¤½¤·¤ÆÍð¿ô¤ÎÀ¸À®¤òÀâÌÀ¤·¤Æ¤ª¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë»Ï¤Þ¤ë
\name{Normal}
\alias{dnorm}
\alias{pnorm}
\alias{qnorm}
\alias{rnorm}
|
¥Õ¥¡¥¤¥ë̾¤Ïʸ¾Ï²½¤µ¤ì¤¿ÏÃÂê¤Ç¤¢¤ëɬÍפϤʤ¤¤³¤È¤òÃí°Õ¤·¤è¤¦¡£
\title{Title}
\description{...}
\usage{fun(arg1, arg2, ...)}
ÀâÌÀ¤µ¤ì¤ë»ÈÍѾðÊó¤Ï°ìÈ̤Ë(¥³¡¼¥É¤Èʸ¾Ï´Ö¤Î°ì´ÓÀ¤Î¼«Æ°¸¡ºº¤¬²Äǽ¤Ë¤Ê¤ë¤è¤¦¤Ë)
´Ø¿ô¤ÎÄêµÁ¤È Àµ³Î¤Ë °ìÃפ¹¤ëɬÍפ¬¤¢¤ë
¤µ¤â¤Ê¤±¤ì¤Ð¼ÂºÝ¤ÎÍÑË¡¤ò¼¨¤¹ \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{...}
\email{} ¤ò»È¤¦¡£¥¦¥§¥Ã¥Ö¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤Ï \url{} ¤ò»È¤¦¡£
\seealso{...}
\code{\link{...}} ¤ò»È¤¦
(\code ¤Ï R ¥ª¥Ö¥¸¥§¥¯¥È̾¤ËÂФ¹¤ëÀµ¤·¤¤¥Þ¡¼¥¯¥¢¥Ã¥×¤Ç¤¢¤ê¡¢
\link ¤Ï¤³¤ì¤ò¥µ¥Ý¡¼¥È¤¹¤ë½ÐÎϽñ¼°¤Ë¤è¤ë¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤òÀ¸À®¤¹¤ë¡£
See section 2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥¥¹¥È ¤È 2.5 Áê¸ß»²¾È)¡£
\examples{...}
¼ÂÎã¤Ï¥É¥¥å¥á¥ó¥È¤ÎÌÜŪ¤ËÍÍѤǤ¢¤ë¤À¤±¤Ç¤Ê¤¯¡¢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] | [ ? ] |
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{...}
\source{...}
\references ¤ÏÆó¼¡Åª½Ðŵ¤ÈÍÑË¡¤òÍ¿¤¨¤ë¤³¤È¤¬½ÐÍè¤ë¡£
¥Ç¡¼¥¿¥»¥Ã¥È bar ¤òʸ¾Ï²½¤¹¤ëºÝ¤Ë¤â¤³¤ì¤òÃí°Õ¤»¤è¡£
\usage ¹àÌܤϾï¤Ë data(bar)¡£
\keyword ¹àÌܤϾï¤Ë `datasets'¡£
\keyword ¹àÌܤϾï¤Ë `datasets'¡£
¤â¤· bar ¤¬¥Ç¡¼¥¿¥Õ¥ì¡¼¥à¤Ê¤é¡¢¤½¤ì¤ò¥Ç¡¼¥¿¥»¥Ã¥È¤È¤·¤ÆÊ¸¾Ï²½¤¹¤ë¤³¤È¤Ï
ºÆ¤Ó prompt(bar) ¤Ç»Ï¤á¤ë¤³¤È¤¬½ÐÍè¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
¿·¤·¤¤¥Ñ¥é¥°¥é¥Õ¤ò»Ï¤á¤¿¤ê¡¢ÎãÃæ¤Ë¶õÇò¹Ô¤ò»Ä¤·¤¿¤±¤ì¤Ð¡¢
ñ¤Ë¶õÇò¹Ô¤òÁÞÆþ¤»¤è((La)TeX ¤ÈƱÍͤË)¡£
¹Ô´¹¤¨¤ò¤¹¤ë¤¿¤á¤Ë¤Ï \cr ¤ò»È¤¦¡£
ͽ¤áÄêµÁ¤µ¤ì¤¿Àá(\description{}, \value{} Åù)°Ê³°¤Ë¡¢Ç¤°Õ¤ÎÀá¤ò
\section{section_title}{...} ¤ÇÄêµÁ¤Ç¤¤ë¡£
Î㤨¤Ð
|
´ûÄêµÁºÑ¤ßÀá¤È¤Î°ì´ÓÀ¤Î¤¿¤á¤Ë¡¢Àá̾(\section ¤Ø¤ÎÂè°ì°ú¿ô)¤ÏÂçʸ»ú²½(¤·¤«¤·Á´¤ÆÂçʸ»ú¤Ë¤·¤Ê¤¤)¤¹¤ë¡£
ÄɲäÎ̾Á°ÉÕ¤¤ÎÀá¡¢¤½¤ì¤¬ÆþÎϤΤɤ³¤Ë¤¢¤í¤¦¤È¡¢¾ï¤Ë½ÐÎϤΰìÄê¤Î°ÌÃÖ(\note, \seealso ¤½¤·¤Æ¼ÂÎã¤ÎÁ°)¤Ë
ÁÞÆþ¤µ¤ì¤ë¤³¤È¤òÃí°Õ¤·¤è¤¦¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
°Ê²¼¤ÎÏÀÍýŪ¥Þ¡¼¥¯¥¢¥Ã¥×Ì¿Îá¤ÏÆÃÊ̤ʼïÎà¤Î¥Æ¥¥¹¥È¤ò»Ø¼¨¤¹¤ë¤¿¤á¤ËÍøÍѤǤ¤ë¡£
ºÇ½é¤ÎÆó¤Ä¡¢\bold ¤È \emph ¤Ïʿʸ¤Ç¶¯Ä´¤Î¤¿¤á¤Ë»È¤¦¤Ù¤¤Ç¤¢¤ë¡£
R ¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤ò´Þ¤à¡¢R ¥³¡¼¥É¤ÎÃÇÊÒ¤Ï
\code ¤ò»È¤Ã¤Æ¥Þ¡¼¥¯¥¢¥Ã¥×¤µ¤ì¤ë¤Ù¤¤Ç¤¢¤ë¡£
\code Ãæ¤Ç¤Ï¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤È¥Ñ¡¼¥»¥ó¥Èµ¹æ¤À¤±¤¬(¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥åµ¹æ¤òÍѤ¤)¥¨¥¹¥±¡¼¥×¤µ¤ì¤ë
ɬÍפ¬¤¢¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
\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] | [ ? ] |
¥Þ¡¼¥¯¥¢¥Ã¥× \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] | [ ? ] |
¿ô³Ø¼°¤Ïɽ¼¨¥É¥¥å¥á¥ó¥È¤Ç¤ÏÈþ¤·¤¯À°·Á¤µ¤ì¤ë¤Ù¤¤Ç¤¢¤ë¤¬¡¢¥Æ¥¥¹¥È¤ä 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] | [ ? ] |
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] | [ ? ] |
¤·¤Ð¤·¤Ð¥É¥¥å¥á¥ó¥È¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ëɬÍפ¬¤¢¤ë¡£
¸½ºß¤Î¤È¤³¤í¡¢»°¤Ä¤Î OS ¸ÇͤΥª¥×¥·¥ç¥ó¡¢unix, windows ¤½¤·¤Æ
mac ¤¬ÍøÍѲÄǽ¤Ç¡¢¥Ø¥ë¥×¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ëÃæ¤Î¹Ô¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Æ
#ifdef OS ... #endif |
¤â¤·¤¯¤Ï
#ifndef OS ... #endif |
OS ¸ÇͤÎÁÞÆþ¤ä½ü³°¤ò»Ø¼¨¤Ç¤¤ë¡£
¤â¤·¥×¥é¥Ã¥È¥Õ¥©¡¼¥à´Ö¤Î°ã¤¤¤¬¿Ó¤À¤·¤¤¤«¡¢Ê¸¾Ï²½¤µ¤ì¤¿ R ¥ª¥Ö¥¸¥§¥¯¥È¤¬°ì¤Ä¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤À¤± ´ØÏ¢¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇͤΠRd ¥Õ¥¡¥¤¥ë¤ò `unix', `windows' ¤â¤·¤¯¤Ï `mac' ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤³¤È¤¬½ÐÍè¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.1 R ¥³¡¼¥É¤ÎÀ°ÆÜ 3.2 R ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ë
¥Ñ¥Ã¥±¡¼¥¸¤È¤·¤ÆÊݸ¤·¡¢¤Þ¤¿¤ª¤½¤é¤¯Â¾¤Î¿Í¤¬»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤ËÃͤ¹¤ë R ¥³¡¼¥É¤Ï¥É¥¥å¥á¥ó¥È²½¤·¡¢À°ÍýÀ°ÆÜ¤·¡¢¤½¤·¤Æ¤ª¤½¤é¤¯ºÇŬ²½¤¹¤ë¤ËÃͤ¹¤ë¡£ ºÇ¸å¤ÎÆó¤Ä¤Î¹Ô°Ù¤¬¤³¤Î¾Ï¤Î¼çÂê¤Ç¤¢¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
R ¤Ï¡¢¥Ñ¥Ã¥±¡¼¥¸¤«¤éÆÉ¤ß¹þ¤ó¤À´Ø¿ô¥³¡¼¥É¤È¡¢»ÈÍѼԤ¬ÆþÎϤ·¤¿¥³¡¼¥É¤ò °ã¤¦°·¤¤¤ò¤¹¤ë¡£»ÈÍѼԤ¬ÆþÎϤ·¤¿¥³¡¼¥É¤Ï¤¢¤ë»ÅÊý¤ÇÊݸ¤µ¤ì¤¿¥½¡¼¥¹¥³¡¼¥É¤ò »ý¤Á¡¢´Ø¿ô¤òɽ¼¨¤¹¤ë¤È¡¢¸µ¡¹¤Î¥½¡¼¥¹¤¬ºÆÀ¸¤µ¤ì¤ë¡£¥Ñ¥Ã¥±¡¼¥¸¤«¤éÆÉ¤ß¹þ¤Þ¤ì¤¿ ¥³¡¼¥É¤Ï¡Ê´ûÄê¤Ç¤Ï¡Ë¥½¡¼¥¹¥³¡¼¥É¤òÇË´þ¤·¡¢´Ø¿ô¤Îɽ¼¨¤Ï´Ø¿ô¤Î¥ê¥¹¥È¤Ï´Ø¿ô¤Î ¹½Ê¸²òÀÏÌÚ¤«¤éºÆ¹½À®¤µ¤ì¤ë¡£
ÉáÄÌ¥½¡¼¥¹¥³¡¼¥É¤òÊݸ¤·¤Æ¤ª¤¯¤³¤È¤ÏÎɤ¤¹Í¤¨¤Ç¤¢¤ê¡¢ÆÃ¤Ë¡¢Ãí¼á¤¬¥½¡¼¥¹¤«¤é¼è¤êµî¤é¤ì¤ë¤³¤È¤ò
Ëɤ°¡£¤·¤«¤·¤Ê¤¬¤é¡¢°ì´Ó¤·¤¿¥¤¥ó¥Ç¥ó¥È¡¢±é»»»Ò¼þ¤ê¤Î¶õÇò¡¢¹¥¤Þ¤·¤¤ÉÕÃͱ黻»Ò <- ¤Î°ì´Ó
¤·¤¿»ÈÍѤò»ý¤Ä¡¢´Ê·é¤Ê´Ø¿ô¥ê¥¹¥È¤ò¹½Ê¸²òÀÏÌÚ¤«¤éºÆ¹½À®¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¤³¤Î´Ê·é¤ÊÈǤϡ¢É¸½àŪ¤Ê½ñ¼°¤Ë´·¤ì¤¿Â¾¤ÎÆÉ¼Ô¤Ï¤¤¤¦¤ËµÚ¤Ð¤º¡¢¤è¤êÆÉ¤ß¤ä¤¹¤¤¡£
¥½¡¼¥¹¤ÎÊݸ¤òÇË´þ¤¹¤ëÆó¤Ä¤ÎÊýË¡¤¬¤¢¤ë¡£
keep.source ¤ò FALSE
¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
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] | [ ? ] |
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] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹¤Ï R ´Ø¿ô
system ¤ò·Ðͳ¤¹¤ë¡£
¾ÜºÙ¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ë¡Ê¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥×¤ò»²¾È¡Ë¡£
¤½¤·¤Æ°ÂÁ´¤Ë²¾Äê¤Ç¤¤ë¤Û¤È¤ó¤ÉÁ´¤Æ¤Ï¡¢ºÇ½é¤Î°ú¿ô¤Ï¼Â¹Ô¡Êɬ¤º¤·¤â¥·¥§¥ë
¤Ë¤è¤é¤Ê¤¤¡Ë¤Î¤¿¤á¤Ë°ú¤ÅϤµ¤ì¤ëʸ»úÎó command ¤Ç¡¢
ÂèÆó°ú¿ô¤Ï¡¢¤â¤·¤½¤ì¤¬¿¿¤Ê¤é¡¢Ì¿Îá¤Î½ÐÎϤò R ¤Îʸ»ú¥Ù¥¯¥È¥ë¤Ë
½¸¤á¤ë internal ¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦¡¢¤³¤È¤À¤±¤Ç¤¢¤ë¡£
´Ø¿ô system.time
¤¬·×»þ¤Î¤¿¤á¤Ë»È¤¨¤ë¡Ê¤·¤«¤·¤Ê¤¬¤é¡¢ÍøÍѤǤ¤ë¾ðÊó¤ÏÈó¥æ¥Ë¥Ã¥¯¥¹¥×¥é¥Ã¥È¥Õ¥©¡¼¥à
¤Ç¤Ï¸Â¤é¤ì¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¡Ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
.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 ¤Ç¤Î·¿ logicalint *INTEGERintegerint *INTEGERdoubledouble *DOUBLE PRECISIONcomplexRcomplex *DOUBLE COMPLEXcharacterchar **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] | [ ? ] |
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] | [ ? ] |
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] | [ ? ] |
¼¡¤Î¤è¤¦¤Ê²¾ÁÛŪ¤Ê 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] | [ ? ] |
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] | [ ? ] |
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] | [ ? ] |
¿¤¯¤ÎÌÜŪ¤Ë¼è¤Ã¤Æ¡¢R ¥ª¥Ö¥¸¥§¥¯¥È¤ò³ä¤êÅö¤Æ¡¢¤½¤ì¤é¤òÁàºî¤¹¤ë¤À¤±¤Ç
½½Ê¬¤Ç¤¢¤ë¡£¤Û¤ó¤Î¾¯¤·¤Î allocXxx ´Ø¿ô¤¬ `Rinternals.h' Ãæ¤Ë
ÄêµÁ¤µ¤ì¤Æ¤¤¤ë---¤½¤ì¤é¤òÄ´¤Ù¤Æ¤ß¤¿¤¯¤Ê¤ë¤«¤âÃΤì¤Ê¤¤¡£
¤³¤ì¤é¤ÏÍÍ¡¹¤Ê·¿¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ò³ä¤êÅö¤Æ¡¢É¸½àŪ¤Ê¥Ù¥¯¥È¥ë·¿¤ËÂФ·¤Æ¤Ï¡¢
`Rdefines.h' Ãæ¤ÇÄêµÁ¤µ¤ì¤¿ NEW_XXX ¥Þ¥¯¥í¤¬¤¢¤ë¡£
·×»»ÅÓÃæ¤Ë C ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ¹¤ë¥á¥â¥ê³ä¤êÅö¤Æ¤¬É¬Íפˤʤ俤顢
R_alloc ¤ò¸Æ¤Ó½Ð¤¹¤Î¤¬ºÇÁ±¤Ç¤¢¤ë¡¨see section 4.6.2 ¥á¥â¥ê³ä¤êÅö¤Æ¤ÎÊÝ´É¡£
¤³¤ì¤éÁ´¤Æ¤Î¥á¥â¥ê³ä¤êÅö¤Æ¥ë¡¼¥Á¥ó¤Ï¤½¤ì¼«¿È¤Î¥¨¥é¡¼¸¡ººµ¡Ç½¤ò
»ý¤Ä¤Î¤Ç¡¢¤â¤·¥á¥â¥ê¤¬³ä¤êÅö¤ÆÉÔǽ¤Ê¤é¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¸Æ¤Ó½Ð¤·¤¬
Ìá¤é¤Ê¤¤¤³¤È¤ò¥×¥í¥°¥é¥Þ¤Ï²¾Äꤷ¤ÆÎɤ¤¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
`Rinternals.h' Ãæ¤ÇÄêµÁ¤µ¤ì¤¿¥Þ¥¯¥í¤ò»È¤¦¤Ë¤Ï R ¤Î·¿¤¬ ÆâÉô Ū¤ËÇ¡²¿¤ËÃΤé¤ì¤ë¤Î¤«¤òÃΤëɬÍפ¬¤¢¤ë¡§¤³¤ì¤Ï¤â¤· `Rdefines.h' Ãæ¤Î¥Þ¥¯¥í¤ò»È¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢Â¿¤«¤ì¾¯¤Ê¤«¤ì ´°Á´¤Ë±£¤µ¤ì¤Æ¤¤¤ë¡£
°Û¤Ê¤Ã¤¿ R ¥Ç¡¼¥¿¥¿¥¤¥×¤Ï C Ãæ¤Ç SEXPTYPE ¤Ë¤è¤êɽ¸½¤µ¤ì¤Æ¤¤¤ë¡£ ´ö¤Ä¤«¤Ï R ¤Ç¤ª¤Ê¤¸¤ß¤Î¤â¤Î¤Ç¤¢¤ê¡¢´ö¤Ä¤«¤ÏÆâÉôŪ¤Ê¥Ç¡¼¥¿·¿¤Ç¤¢¤ë¡£ Ä̾ï¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥â¡¼¥É¤¬¼¡¤Îɽ¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤ë¡£
SEXPTYPE R ¤ÎÂбþ·¿ REALSXP·¿ double¤Î¿ôÃÍINTSXPÀ°¿ô CPLXSXPÊ£ÁÇ¿ô LGLSXPÏÀÍýÃÍ STRSXPʸ»ú VECSXP¥ê¥¹¥È¡ÊÁí¾ÎŪ¥Ù¥¯¥È¥ë¡Ë LISTXP"dotted-pair" ¥ê¥¹¥È DOTSXP`...' ¥ª¥Ö¥¸¥§¥¯¥È NILSXPNULL 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] | [ ? ] |
¿¤¯¤Î 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] | [ ? ] |
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] | [ ? ] |
¥ê¥¹¥È¤ò°·¤¦¤Ë¤Ï¾¯¡¹Ãí°Õ¤¬¤¤¤ë¡£¤Ê¤¼¤Ê¤é 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] | [ ? ] |
²æ¡¹¤Î 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] | [ ? ] |
¥Ð¡¼¥¸¥ç¥ó 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] = barSET_VECTOR_ELT(foo, j, bar)foo = STRING(bar)[i]foo = STRING_ELT(bar, i)STRING(foo)[j] = barSET_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] | [ ? ] |
.Call ¤È .External ¤³¤ÎÀá¤Ç¤Ï R/C ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Î¾ÜºÙ¤òµÄÏÀ¤¹¤ë¡£
¤³¤ì¤éÆó¤Ä¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ï¤Û¤ÜƱ¤¸µ¡Ç½¤ò»ý¤Ä¡£.Call ¤Ï¥Ð¡¼¥¸¥ç¥ó 4.0 ¤Î \S ¤Î
Ʊ̾¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤Ë½àµò¤·¡¢.External ¤Ï .Internal ¤Ë´ð¤Å¤¯¡£
.External ¤Ï¤è¤êÊ£»¨¤Ç¤¢¤ë¤¬¡¢¸Ä¿ô¤¬ÊѤï¤êÆÀ¤ë°ú¿ô¤òµö¤¹¡£
4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
.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] | [ ? ] |
.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] | [ ? ] |
.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] | [ ? ] |
Àè¤Ë 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] | [ ? ] |
¤³¤ÎÀá¤Ç¤Ï°ÊÁ° 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] | [ ? ] |
.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] | [ ? ] |
ÃÙ¤«¤ìÁᤫ¤ì¥×¥í¥°¥é¥Þ¡¼¤Ï R ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°¤ò¤¹¤ëɬÍ×¤Ë Ç÷¤é¤ì¤ë¡£¤¤¤¯¤Ä¤«¤Î "¥È¥ê¥Ã¥¯" ¤¬Ìò¤ËΩ¤Ä¡£
4.9.1 ưŪ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¡¼¥ÉÃæ¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸«ÉÕ¤±¤ë 4.9.2 ¥Ç¥Ð¥Ã¥°»þ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀººº
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
¤Û¤È¤ó¤É¤Î¥³¥ó¥Ñ¥¤¥ë´Ä¶¤Ç¡¢R ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥³¡¼¥É¤Ï¡¢ ¤½¤ì¤¬¼ÂºÝ¤ËÆÉ¤ß¹þ¤Þ¤ì¤ë¤Þ¤Ç¤½¤ÎÃæ¤Ë¥»¥Ã¥È¤µ¤ì¤¿ÃæÃÇÅÀ¤ò»ý¤Ä¤³¤È¤¬½ÐÍè¤Ê¤¤¡£ UNIX ²¼¤Ç¤½¤Î¤è¤¦¤ÊưŪ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¡¼¥É¤ËÂФ¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥¬¡¼¤ò »È¤¦¤¿¤á¤Ë¤Ï°Ê²¼¤òÍѤ¤¤ë
dyn.load ¤« library ¤ò»È¤¦¡£
library.
Windows ²¼¤Ç¤Ï R ¤Î engine ¤Ï¤½¤ì¼«¿È DLL Ãæ¤Ë¤¢¤ê¡¢¼ê½ç¤Ï
WinMain ¤ËÂФ¹¤ëÃæÃÇÅÀ¤òÀßÄꤷ¤¿¸å R ¤ò¥Ç¥Ð¥Ã¥¬¡¼²¼¤Çµ¯Æ°¤¹¤ë¡£
gdb .../bin/Rgui.exe (gdb) break WinMain (gdb) run [ R.dll ¤òÆÉ¤ß¹þ¤ó¤ÇÃæÃÇ ] (gdb) break R_ReadConsole (gdb) continue [ ¥³¥ó¥½¡¼¥ë¤òư¤«¤·¤¿¤Þ¤ÞÄä»ß¤¹¤ë ] (gdb) continue |
dyn.load ¤« library ¤ò»È¤¦¡£
(gdb) clear R_ReadConsole (gdb) continue |
Windows ¤Ï¿®¹æ¤ËÂФ¹¤ë¥µ¥Ý¡¼¥È¤ò¤Û¤È¤ó¤É»ý¤Ã¤Æ¤ª¤é¤º¡¢¥Ç¥Ð¥Ã¥¬¡¼²¼¤Ç¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¡¢ ¤½¤ì¤òÃæÃǤ¹¤ë¤¿¤á¤Ë°ì»þÄä»ß¿®¹æ¤òÁ÷¤ê¡¢¥Ç¥Ð¥Ã¥¬¡¼¤ËÀ©¸æ¤òÌ᤹¤³¤È¤Ï¤¢¤ë¼ï¤Î¥Ç¥Ð¥Ã¥¬¡¼ ¤Ç¤Î¤ß²Äǽ¤Ç¤¢¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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] | [ ? ] |
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.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö 5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê
C ¥×¥í¥°¥é¥Þ¡¼¤¬»ÈÍѤǤ¤ëÆó¤Ä¤Î¥á¥â¥ê¡¼³äÅöË¡¤¬¤¢¤ê¡¢ °ì¤Ä¤Ï R ¤¬Áݽü¤ÎÌÌÅݤò¸«¤ë¤â¤Î¤Ç¡¢¤â¤¦°ì¤Ä¤Ï¥æ¡¼¥¶¡¼¤¬Á´ÂΤòÀ©¸æ¤Ç¤¤ë(½¾¤Ã¤ÆÀÕǤ¤â¤È¤ë)¤â¤Î¤Ç¤¢¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
¤³¤³¤Ç¤Ï 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] | [ ? ] |
¤â¤¦°ì¤Ä¤Î¥á¥â¥ê³ÎÊݵ¡Ç½¤Ï 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] | [ ? ] |
´ðËÜŪ¤Ê¥¨¥é¡¼½èÍý¥ë¡¼¥Æ¥£¥ó¤Ï 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] | [ ? ] |
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] | [ ? ] |
IEEE 754-¸ß´¹»»½Ñ¤ò·ç¤¯¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç R ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤¬½ÐÍè¡¢
¥æ¡¼¥¶¡¼¤Ï¤½¤ì¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ëɬÍפϤʤ¤¡£
¤à¤·¤í NA, Inf, -Inf (¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç¸ºß¤¹¤ë) ¤½¤·¤Æ NaN ¤ò
¸¡ºº¤¹¤ë´Ø¿ô¤Î°ìÁȤ¬Â¸ºß¤¹¤ë¡£
¤³¤ì¤é¤Î´Ø¿ô¤Ï¼¡¤Î¥Þ¥¯¥í¤òÍѤ¤¤Æ¥¢¥¯¥»¥¹¤Ç¤¤ë:
ISNA(x) R ¤Î |
¤½¤·¤Æ´Ø¿ô R_IsNaN ¤Ï NaN ¤ËÂФ·¤Æ¤Ï¿¿¤À¤¬¡¢NA ¤ËÂФ·¤Æ¤Ïµ¶¤Ç¤¢¤ë¡£
isnan ¤ä finite ¤ÎÂå¤ï¤ê¤Ë¤³¤ì¤é¤ò»È¤ª¤¦; ÆÃ¤Ë¸å¼Ô¤Ï¤·¤Ð¤·¤Ð¸í¤Ã¤¿
·ë²Ì¤òÍ¿¤¨¤ë¡£
Inf ¤ä -Inf ¤Î¸¡ºº¤ò R_PosInf ¤ä R_NegInf ¤Ø¤ÎÅù¹æÀ¤ò
¸¡ºº¤¹¤ë¤³¤È¤ÇÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¡£¤½¤·¤Æ NA ¤ò NA_REAL ¤È¤·¤ÆÀßÄê
(¤·¤«¤·¸¡ºº¤Ï¤·¤Ê¤¤)¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£
¾å¤ÎÁ´¤Æ¤Ï ÇÜÀºÅټ¿ô ÊÑ¿ô¤ËÂФ·¤Æ¤À¤±Åö¤Æ¤Ï¤Þ¤ë¡£
À°¿ôÊÑ¿ô¤ËÂФ·¤Æ¤Ï¥Þ¥¯¥í NA_INTEGER ¤Ë¤è¤ê¥¢¥¯¥»¥¹½ÐÍè¤ë
ÊÑ¿ô¤¬¤¢¤ê¡¢ÈóÀ°¿ôÀ¤ò¸¡ºº¤·¤¿¤êÀßÄꤷ¤¿¤ê½ÐÍè¤ë¡£
¤³¤ì¤é¤ÎÆÃ¼ìÃͤÏ˽Áö¤·¤¿Ä̾ï¤Î·×»»Ãæ¤ËÀ¸¤¸¤ë²ÄǽÀ¤Î¤¢¤ë¶Ëü¤Ê ÃͤȤ·¤ÆÉ½¸½¤µ¤ì¤Æ¤¤¤ë²ÄǽÀ¤¬¤¢¤ê¡¢½¾¤Ã¤Æ¤½¤ì¤é¤¬ÉÔÃí°Õ¤Ç À¸¤¸¤¿¤Î¤Ç¤Ï¤Ê¤¤¤³¤È¤ò¸¡ºº¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
R ¤Ø¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ C ¥ë¡¼¥Æ¥£¥ó¤«¤éɽ¼¨¤¹¤ë¤¿¤á¤ÎºÇ¤âÍÍѤʴؿô¤Ï
Rprintf ¤Ç¤¢¤ë¡£¤³¤ì¤Ï printf ¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤Ë»È¤¨¤ë¤¬¡¢R
¤Î½ÐÎÏ(¤½¤ì¤Ï¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯ GUI ¥³¥ó¥½¡¼¥ë¤«¤â¤·¤ì¤Ê¤¤)¤Ë½ñ¤½Ð¤¹
¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£R ¤ËÌá¤ëÁ°¤Ë("\n" ¤ò´Þ¤à)´°Á´¤Ê¹Ô¤ò½ñ¤¹þ¤à¤³¤È¤¬
¸ÌÀ¤Ç¤¢¤ë¡£
´Ø¿ô REprintf ¤ÏÎɤ¯»÷¤Æ¤¤¤ë¤¬¥¨¥é¡¼¥¹¥È¥ê¡¼¥à(stderr)¤Ë½ñ¤½Ð¤·¡¢
¤³¤ì¤Ïɸ½àŪ¤Ê½ÐÎÏ¥¹¥È¥ê¡¼¥à¤ÈƱ¤¸¤«¤â¤·¤ì¤Ê¤¤¤·°Û¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
´Ø¿ô Rvprintf ¤È REvprintf ¤Ï vprintf ¥¤¥ó¥¿¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë
Îà»÷ʪ¤Ç¤¢¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ÍýÏÀŪ¤Ë¤Ï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] | [ ? ] |
FORTRAN ¤¬À¸À®¤¹¤ë¥·¥ó¥Ü¥ë¤ËÂФ¹¤ë̿̾µ¬Â§¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤ê°Û¤Ê¤ë¡£ ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸Çͤκ¹°Û¤ò¥«¥Ð¡¼¤¹¤ë¤³¤È¤ò½õ¤±¤ë¤¿¤á¤Ë¡¢»È¤ï¤ì¤ë¤Ù¤ °ìÏ¢¤Î¥Þ¥¯¥í¤¬¤¢¤ë¡£
F77_SUB(name)
F77_NAME(name)
F77_CALL(name)
F77_COMDECL(name)
F77_COM(name)
¤Û¤È¤ó¤É¤Î¸½ºß¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç¤³¤ì¤é¤ÏƱ¤¸¤Ç¤¢¤ë¤¬¡¢²á¿®¤·¤Ê¤¤Êý¤¬¸ÌÀ¤Ç¤¢¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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] | [ ? ] |
ɸ½àŪ¤ÊÅý·×ʬÉÛ¤ËÂФ¹¤ëÌ©Åٴؿô¡¢ÎßÀÑʬÉÛ´Ø¿ô¤½¤·¤Æ¥¯¥ª¥ó¥¿¥¤¥ë´Ø¿ô ¤ò·×»»¤¹¤ë¥ë¡¼¥Æ¥£¥ó¤¬¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤È¤·¤ÆÍýÍѲÄǽ¤Ç¤¢¤ë¡£
¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤Ø¤Î°ú¿ô¤ÏÀµµ¬Ê¬ÉÛ¤ËÂФ¹¤ë¤½¤ì¤é¤Î·Á¼°¤òƧ½±¤¹¤ë:
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 betaa, bnon-central beta nbetaa, b, lambdabinomial binomn, pCauchy cauchylocation, scalechi-squared chisqdfnon-central chi-squared nchisqdf, lambdaexponential expscaleF fn1, n2non-central F {p,q}nfn1, n2, ncpgamma gammashape, scalegeometric geomphypergeometric hyperNR, NB, nlogistic logislocation, scalelognormal lnormlogmean, logsdnegative binomial nbinomn, pnormal normmu, sigmaPoisson poislambdaStudent's t tnnon-central t {p,q}ntdf, deltaStudentized range {p,q}tukeyrr, cc, dfuniform unifa, bWeibull weibullshape, scaleWilcoxon rank sum wilcoxm, nWilcoxon signed rank signrankn
°ú¿ô̾¤Ï R ¤Î¤½¤ì¤ÈÁ´¤¯Æ±¤¸¤Ç¤Ï¤Ê¤¤¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
bessel_i ¤È bessel_k ¤ËÂФ·¤Æ¤Ï¤â¤· expo ==2
exp(-x) I(x;nu) ¤â¤·¤¯¤Ï exp(x) K(x;nu) ¤òÊÖ¤¹¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¡£
(¥¹¥±¡¼¥ë²½¤·¤Ê¤¤ÃÍ¤Ë¤Ï expo == 1 ¤ò»È¤¦¡£)
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
R_pow(x, y) ¤È R_pow_di(x, i)
¤Ï¤½¤ì¤¾¤ì x^y ¤È x^i ¤ò·×»»¤¹¤ë¡£
x, y ¤â¤·¤¯¤Ï i ¤¬Îí¤À¤Ã¤¿¤ê¡¢·ç»ÃÍ¡¢Ìµ¸ÂÂç¡¢Ëô¤Ï NaN
¤Ç¤Ê¤¤¤«¤ò R_FINITE ¤òÍѤ¤¤Æ¸¡ºº¤·¡¢x, y ¤â¤·¤¯¤Ï i
¤¬Îí¤À¤Ã¤¿¤ê¡¢·ç»ÃÍ¡¢Ìµ¸ÂÂç¡¢Ëô¤Ï NaN ¤Î¾ì¹ç¤ÏŬÀµ¤Ê·ë²Ì (R ¤ÈƱ¤¸)
¤òÊÖ¤¹¡£
pythag(a, b) ¤Ï sqrt(a^2 +
b^2) ¤ò·å°î¤ì¤äÇËÌÇŪ¤Ê·åÍî¤Á̵¤·¤Ë·×»»¤¹¤ë: Î㤨¤Ð
a ¤È b ¤ÎÁÐÊý¤¬ 1e200 ¤È 1e300 (IEEE ÇÜÀºÅÙ¤Ç)
¤Î´Ö¤Ë¤¢¤Ã¤Æ¤â°ÍÁ³¤È¤·¤ÆÆ°ºî¤¹¤ë¡£
log(1 + x) (log 1 plus x) ¤ò¾®¤µ¤Ê x, ¤Ä¤Þ¤ê @iftex
|x| << 1
¤Ç¤âÀµ³Î¤Ë·×»»¤¹¤ë¡£
max) ¤â¤·¤¯¤Ï¾®¤µ¤ÊÊý (min)
¤òÊÖ¤¹¡£
¤³¤ì¤Ï R ¤Î round() ¤ÇÍѤ¤¤é¤ì¤ë´Ø¿ô¤Ç¤¢¤ë¡£
¤³¤ì¤Ï R ¤Î signif() ¤ÇÍѤ¤¤é¤ì¤ë´Ø¿ô¤Ç¤¢¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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] | [ ? ] |
R ¤Ï¥æ¡¼¥¶¡¼¤Î C ¥³¡¼¥É¤ØÍøÍѲÄǽ¤Ê¤«¤Ê¤ê´°Á´¤Ê¥½¡¼¥È¤Î¤¿¤á¤Î¥ë¡¼¥Æ¥£¥ó¤ò»ý¤Ä¡£ °Ê²¼¤¬¤½¤¦¤Ç¤¢¤ë¡£
rsort_with_index ¤Ï x ¤ò¥½¡¼¥È¤·¡¢¼¡¤ËƱ¤¸Ê¤ٴ¹¤¨¤ò index ¤Ë¹Ô¤¦¡£
rsort_with_index ¤ËÎà»÷¤¹¤ë¤¬¹ß½ç¤Ë¥½¡¼¥È¤¹¤ë¡£
x[k] ¤¬¤è¤ê¾®¤µ¤ÊÃͤϺ¸¤Ë¡¢¤è¤êÂ礤ÊÃͤϱ¦¤Ë¤¯¤ë¤è¤¦¤Ë¤¹¤ë¡£
matrix ¤òÍ¿¤¨¤¿¤È¤¡¢
R_max_col() ¤Ï maxes[i-1] ¤Ë i-ÈÖÌܤιԤκÇÂçÍ×ÁǤÎÎó¿ô¤òÊÖ¤¹
(R ¤Î max.col() ´Ø¿ô¤ÈƱÍÍ)¡£
¤Þ¤¿´ö¤Ä¤«¤Î R ´Ø¿ôÃæ¤Ç¥Õ¥¡¥¤¥ë̾¤òŸ³«¤¹¤ëÆâÉô´Ø¿ô¤¬¤¢¤ê¡¢
path.expand ¤òÍѤ¤¤ÆÄ¾ÀܸƤӽФ»¤ë¡£
HOME ¤«¤é¼è¤é¤ì¤ë¡£
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï 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] | [ ? ] |
`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.1 .Internal¤È.PrimitiveA.2 R ¥³¡¼¥É¤Î¸¡ºº
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
.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" ¤Ê´Ø¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ë´°Á´¤Ë»ØÄê¤Ç¤¤ë¡£
{ ( if for while repeat break next
return function on.exit
|
foo(a, b, ...) ¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¤â¤Î)¡£
¤³¤ì¤é¤Ï°Ê²¼¤Î 1-, 2-, ¤½¤·¤Æ N-°ú¿ô´Ø¿ô¤Ç¤¢¤ë:
[ [[ $ <- <<- [<- [[<- $<- --------------------------------------- + - * / ^ %% %*% %/% < <= == != >= > | || & && ! |
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) ¤Ë°ìÃפ¹¤ë¤³¤È¤¬
Êݾڤµ¤ì¤ë¡£
nargs missing interactive is.xxx .Primitive .Internal .External symbol.C symbol.For globalenv pos.to.env unclass |
(¤³¤³¤Ç xxx ¤ÏÌó30¸Ä¤Î°Û¤Ê¤Ã¤¿°ÕÌ£¤ò»ý¤Ä¡¢Î㤨¤Ð
function, vector, numeric, Åù)¡£
debug undebug trace untrace browser proc.time |
.Alias environment<- length length<- class class<- attr attr<- attributes attributes<- dim dim<- dimnames dimnames<- |
: ~ c list unlist call as.call expression substitute UseMethod invisible .C .Fortran .Call |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
(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] | [ ? ] |
R ¤Ï Linux¡¢¤Û¤È¤ó¤É¤Î Unix ¤ÎÊѼ32-bit ÈǤΠWindows¡¢¤½¤·¤Æ¤Ä¤¤¤Ë¤Ï(ºÆ¤Ó) Power Mac ¤È¤¤¤Ã¤¿Â¿¤¯¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Çư¤¯¤³¤È¤òÌܻؤ·¤Æ¤¤¤ë¡£½¾¤Ã¤Æ¡¢R ¤Î´ðËÜÇÛÉÛʪ¤Ø¤ÎÄɲä䥢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤ò Ä󶡤¹¤ë¤³¤È¤Ë¤è¤ê R ¤ò³ÈÄ¥¤¹¤ë¤È¤¤Ï¡¢¾¯¿ô¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤À¤±¤Ë¸ÇÍ¤ÎÆÃÀ¤Ë°Í¸¤¹¤ë¤³¤È¤Ï¡¢¤â¤·¤½¤ì¤¬ ²Äǽ¤Ê¤éÈò¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÆÃ¤Ë¡¢Â¿¤¯¤Î R ³«È¯¼Ô¤Ï GNU ¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¤¤¤ë¤¬¡¢É¸½àŪ¤Ê ¥Ä¡¼¥ë¤Ø¤Î GNU ³ÈÄ¥¤òÍøÍѤ¹¤Ù¤¤Ç¤Ï¤Ê¤¤¡£´ö¤Ä¤«¤Î¾¤Î¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ï¸øÁ³¤È¡¢Î㤨¤Ð GNU make ¤ä GNU C++ ¥³¥ó¥Ñ¥¤¥é¡¼¤ò»È¤Ã¤Æ¤¤¤ë¤¬¡¢R ¤Ï»ÈÍѤ·¤Ê¤¤¡£ ¤·¤«¤·¤Ê¤¬¤é R ¤Ï GNU ¥×¥í¥¸¥§¥¯¥È¤Ç¤¢¤ê¡¢GNU ¤Î¥³¡¼¥Ç¥£¥ó¥°É¸½à¤Ï ½ÐÍè¤ë¸Â¤ê¼é¤é¤ì¤ë¤Ù¤¤Ç¤¢¤ë¡£
°Ê²¼¤Î¥Ä¡¼¥ë¤Ï R ¤Î³ÈÄ¥¤Ç "°ÂÁ´¤Ë²¾Äê¤Ç¤¤ë"¡£
f2c¡£
make ¤ò´ðËܤȤ¹¤ëñ½ã¤Ê make¡£
`%' ¤òÍѤ¤¤¿¥Ñ¥¿¡¼¥óµ¬Â§¡¢¼«Æ°ÊÑ¿ô `$^'¡¢ÊÑ¿ô¤ËÃͤòÄɲ乤ë `+=' ¹½Ê¸¡¢¥¨¥é¡¼Ìµ¤·¤Î
make ¥Õ¥¡¥¤¥ë¤Î("safe")¼è¤ê¹þ¤ß¡¢¾ò·ïÉÕ¤¼Â¹Ô¡¢¤½¤Î¾ÂçÀª¤ò´Þ¤à GNU ¤â¤·¤¯¤Ï¾¤Î³ÈÄ¥¤Ï
»È¤¦¤Ù¤¤Ç¤Ï¤Ê¤¤(¤è¤ê¾ÜºÙ¤Ï GNU Make Manual ¤Î "Features" ¤Î¾Ï¤ò¸«¤è)¡£
¾Êý¤Ç¡¢¤â¤· make ¤¬ VPATH µ¡¹½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð¡¢
R ¤òÊ̸Ä(¥½¡¼¥¹¤ò´Þ¤Þ¤Ê¤¤)¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¹½ÃÛ¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤Ï¤º¤Ç¤¢¤ë¡£
Windows ¸ÇͤΠmakefile ¤Ï GNU make 3.75ÈǤ⤷¤¯¤Ï¤½¤ì°Ê¹ß¤ò
²¾Äꤷ¤Æ¤âÎɤ¤¡£¤Ê¤¼¤Ê¤é¤½¤ì°Ê³°¤Î make ¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï
±Ê³¤·¤½¤¦¤â¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
grep, sed, ¤½¤·¤Æ awk ¤ò´Þ¤à "ÅÁÅýŪ¤Ê" Unix ¥×¥í¥°¥é¥ß¥ó¥°¥Ä¡¼¥ë¡£
¤³¤¦¤·¤¿¥Ä¡¼¥ë¤Ë¤Ï POSIX ɸ½à¤¬¤¢¤ë¤¬¡¢¤³¤ì¤é¤Ï´°Á´¤Ë¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¤«¤â¤·¤ì¤º¡¢
Àµ³Î¤Êɸ½à¤Ïŵ·¿Åª¤Ë¥¢¥¯¥»¥¹¤·¤Ë¤¯¤¤¡£
´ðËܤȤʤëÆÃÀ¤Ï Brian W. Kernighan & RobPike ¤Ë¤è¤ë The UNIX Programming Environment ¤È¤¤¤Ã¤¿
Ëܤ«¤éÆÀ¤é¤ì¤ë¡£ÆÃ¤ËÀµµ¬É½¸½¤ËÃÖ¤±¤ë `|' ¤Ï³ÈÄ¥Àµµ¬É½¸½¤Ç¤¢¤ê¡¢Á´¤Æ¤ÎÈǤΠgrep ¤ä
sed ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
Windows ¤Ç¤Ï¤³¤¦¤·¤¿¥Ä¡¼¥ë¤ò²¾Äê¤Ç¤¡¢É¬ÍפʥС¼¥¸¥ç¥ó(ÆÃ¤Ë¡¢basename, cat, comm,
cp, cut, diff, echo,
egrep, expr, find, gawk,
grep, ls, mkdir, mv,
rm, sed, sort, tar,
touch, unzip, wc ¤½¤·¤Æ zip) ¤Ï
http://www.stats.ox.ac.uk/pub/Rtools/tools.zip ¤ËÄ󶡤µ¤ì¤Æ¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é¡¢
¤³¤ì¤ÏñÆÈ²ÔƯ¤Î¥·¥§¥ë(Bourne ¥·¥§¥ë¤Ï¤¤¤¦¤Þ¤Ç¤â¤Ê¤¯)¤òÍøÍѤ·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤Ï
system ·Ðͳ¤Ç¤ÏÍøÍѲÄǽ¤È²¾Äê¤Ç¤¤Ê¤¤¡£
²Ã¤¨¤Æ¡¢°Ê²¼¤Î¥Ä¡¼¥ë¤¬¤¢¤ë¼ï¤Îºî¶È¤ËɬÍפˤʤ롣
check ¤ä build (see section 1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ) ¤È¤¤¤Ã¤¿Â¾¤Î¥Ä¡¼¥ë¤Ï
Perl ¤òɬÍפȤ¹¤ë¡£
R ¤Î¥³¥¢¥Á¡¼¥à¤Ï R ¤ò¥½¡¼¥¹¤«¤é¹½ÃÛ¤·¤¿¤ê¡¢¥¢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤ò¹½ÃÛ¤·¸¡ºº¤·¤¿¤ê¡¢ ¥¢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤ò¥½¡¼¥¹¤«¤é°Ü¿¢¤¹¤ë¤Î¤Ë¡¢Perl (Âè5ÈÇ) ¤¬°ÂÁ´¤Ë²¾Äê¤Ç¤¤ë¤³¤È¤ò ·èÄꤷ¤¿¡£Â¾Êý¤Ç¡¢¥¢¥É¥ª¥ó¥Ñ¥Ã¥±¡¼¥¸¤Î binary (¹½ÃۺѤß)ÈǤò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤ê¡¢¼Â¹Ô»þ¤Ë¤Ï Perl ¤Ï Á´¤¯²¾Äꤹ¤ë¤³¤È¤Ï½ÐÍè¤Ê¤¤¡£
¤Þ¤¿¥³¡¼¥É¤¬Â¾¿Í¤Ë¤âÍý²ò²Äǽ¤ÊÉ÷¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤¬½ÅÍפǤ¢¤ë¡£ ¤³¤ì¤ÏÆÃ¤ËÌäÂê¤ò²ò·è¤·¡¢¤½¤ì¤À¤±¤ÇÍý²ò²Äǽ¤ÊÊÑ¿ô̾¤òÍøÍѤ·¡¢¥³¡¼¥É¤ËÃí¼á¤ò »Ü¤·¡¢Å¬Àµ¤Ë½ñ¼°²½¤¹¤ë¤Î¤ËÍÍѤǤ¢¤ë¡£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 |
|---|
| 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 |
|---|
| Jump to: | ¥
¶
·
¿
Â
Æ
Ê
Î
B C D F G I R |
|---|
| [Top] | [Contents] | [Index] | [ ? ] |
¤³¤ì¤Ï´°Á´¤Ë¤Ï¿¿¼Â¤Ç¤Ï¤Ê¤¤¡£ÂФˤʤäƤ¤¤Ê¤¤Ãæ³ç¸Ì¤ÏÌäÂê¤òÀ¸¤¸¡¢¥¨¥¹¥±¡¼¥×¤¹¤Ù¤¤Ç¤¢¤ë¡£ Î㤨¤Ð¥Õ¥¡¥¤¥ë `Paren.Rd' Ãæ¤Î¼ÂÎã¤ÎÀá¤ò¸«¤è¡£
SEXP ¤Ï Simple EXPression, common in LISP-like language syntaxes ¤Î´Êά·Á¤Ç¤¢¤ë¡£
| [Top] | [Contents] | [Index] | [ ? ] |
¼Õ¼
1. R ¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
1.1 ¥Ñ¥Ã¥±¡¼¥¸¤Î¹½Â¤2. R ¤Î¥É¥¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯
1.1.1 DESCRIPTION ¥Õ¥¡¥¤¥ë1.2 ¥³¥ó¥Õ¥£¥®¥å¥¢¤È¸åÊÒÉÕ¤±
1.1.2 INDEX ¥Õ¥¡¥¤¥ë
1.1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê
1.1.4 ¥Ñ¥Ã¥±¡¼¥¸¤Îº
1.3 ¥Ñ¥Ã¥±¡¼¥¸¤Î¸¡ºº¤È¹½ÃÛ
1.4 CRAN ¤Ø¤ÎÅê¹Æ
2.1 Rd ½ñ¼°3. R ¥³¡¼¥É¤ÎÀ°Íý¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°
2.1.1 ¥É¥¥å¥á¥ó¥ÈÍÑ´Ø¿ô2.2 Àá¶èʬ
2.1.2 ¥Ç¡¼¥¿¥»¥Ã¥È¤Î¥É¥¥å¥á¥ó¥È²½
2.3 ¥Þ¡¼¥¯¤µ¤ì¤¿¥Æ¥¥¹¥È
2.4 ¥ê¥¹¥È¤Èɽ
2.5 Áê¸ß»²¾È
2.6 ¿ô¼°
2.7 ÁÞÆþ
2.8 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇͤÎʸ¾Ï
2.9 Rd ½ñ¼°¤Î½èÍý
3.1 R ¥³¡¼¥É¤ÎÀ°ÆÜ4. ¥·¥¹¥Æ¥à¤È¾¸À¸ì´Ö¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
3.2 R ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ë
4.1 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹5. R ¤Î API: C ¥³¡¼¥É¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È
4.2 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô.C¤È.Fortran
4.3dyn.load¤Èdyn.unload
4.4 ¶¦Íѥ饤¥Ö¥é¥ê¤ÎºîÀ®
4.5 C++ ¥³¡¼¥É¤È¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
4.6 C Ãæ¤Ç R ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò°·¤¦
4.6.1 ¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó¤Î±Æ¶Á¤ò½èÍý¤¹¤ë4.7 ¥¤¥ó¥¿¥Õ¥§¥¤¥¹´Ø¿ô
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 ¤Ë±÷¤±¤ëÊѹ¹ÅÀ
.Call¤È.External
4.7.14.8 R ¤Îɽ¸½¼°¤ò C ¤«¤éɾ²Á¤¹¤ë.Call¤Î¸Æ¤Ó½Ð¤·
4.7.2.External¤Î¸Æ¤Ó½Ð¤·
4.7.3 ·ç»ÃÍ¤ÈÆÃ¼ìÃÍ
4.8.1 ÎíÅÀ¤ò¸«ÉÕ¤±¤ë4.9 ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°
4.8.2 ¿ôÃÍÈùʬ¤Î·×»»
4.9.1 ưŪ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥³¡¼¥ÉÃæ¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò¸«ÉÕ¤±¤ë
4.9.2 ¥Ç¥Ð¥Ã¥°»þ¤Î R ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀººº
5.1 ¥á¥â¥ê³ä¤êÅö¤ÆA. R ¤Î¡ÊÆâÉô¤Î¡Ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë´Ø¤¹¤ë»¨Â¿¤Ê¤³¤È
5.1.1 °ì»þŪÊÝ´ÉÍÑ¥á¥â¥ê³äÅö5.2 ¥¨¥é¡¼½èÍý
5.1.2 ¥æ¡¼¥¶¡¼À©¸æ¥â¥ê
5.3 Íð¿ôÀ¸À®
5.4 ·ç»ÃÍ¤È IEEE ÆÃ¼ìÃÍ
5.5 ɽ¼¨
5.5.1 FORTRAN¤«¤é¤Îɽ¼¨5.6 FORTRAN ¤«¤é C ¤ò¸Æ¤Ö¡¢¤Þ¤¿¤½¤ÎµÕ
5.7 ¿ôÃͲòÀÏ¥µ¥Ö¥ë¡¼¥Á¥ó
5.7.1 ʬÉÛ´Ø¿ô5.8 ¾®Æ»¶ñ´Ø¿ô
5.7.2 ¿ô³Ø´Ø¿ô
5.7.3 ¾®Æ»¶ñ
5.7.4 ¿ô³ØÄê¿ô
5.9 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤È¥Ð¡¼¥¸¥ç¥ó¾ðÊó
5.10 ¤³¤ì¤é¤Î´Ø¿ô¤ò¼«Ê¬¼«¿È¤Î C ¥³¡¼¥É¤Ç»È¤¦
A.1B. R ¤Î¥³¡¼¥Ç¥£¥ó¥°¤Îɸ½à.Internal¤È.Primitive
A.2 R ¥³¡¼¥É¤Î¸¡ºº
´Ø¿ô¤ÈÊÑ¿ô¤Îº÷°ú
³µÇ°¤Îº÷°ú
| [Top] | [Contents] | [Index] | [ ? ] |
¼Õ¼
1. R ¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
2. R ¤Î¥É¥¥å¥á¥ó¥È¤òºî¤ë½ñ¤¯
3. R ¥³¡¼¥É¤ÎÀ°Íý¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°
4. ¥·¥¹¥Æ¥à¤È¾¸À¸ì´Ö¤Î¥¤¥ó¥¿¥Õ¥§¥¤¥¹
5. R ¤Î API: C ¥³¡¼¥É¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È
A. R ¤Î¡ÊÆâÉô¤Î¡Ë¥×¥í¥°¥é¥ß¥ó¥°¤Ë´Ø¤¹¤ë»¨Â¿¤Ê¤³¤È
B. R ¤Î¥³¡¼¥Ç¥£¥ó¥°¤Îɸ½à
´Ø¿ô¤ÈÊÑ¿ô¤Îº÷°ú
³µÇ°¤Îº÷°ú
| [Top] | [Contents] | [Index] | [ ? ] |
| 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 |