R Internals

来源:互联网 发布:如何防止手机网络泄密 编辑:程序博客网 时间:2024/05/18 00:41

来源于<<R Internals>>

较有用的中文网址:http://www.biosino.org/R/R-doc/

1. R Interal Structures

(1)SEXPs


(2)SEXPTYPEs


atomic vector types:LGLSXP,INISXP,REALSXP,CPLXSP,STRSXP and RAWSXP

Lists:VECSXP

names(symbols): SYMSXP

Pairlists:LISTSXP

Character:CHARSXP

Language objects:LANGSXP

Expressions:EXPRSXP

FUNSXP:CLOSXP、SPECIALSXP、BUILTINSXP

SEXPTYPE S4SXP:S4 objects

(3)sxpinfo header


debug :(closures and environments)

               closures: debug() undebug() fn的调用是在browser中

               environments:browsing是否是单步模式

trace:trace()function

            tracemem() objects

spare:closures  用于一次debugging

named:SET_NAMED and NAMED macros

(4)the 'data'





(5)Search Path

environments有enclosures,在frame中search path,然后是frame中的enclosure

search path描述的是environment chain

(6)Namespaces

 namespaces是与packages有关的environments

一个有namespace的pkg的package定义了两个environments:namespace:pkg(可以被attached,构成search path)和package:pkg

package:pkg是由namespace:pkg环境中的symbols来populated

global environment:the enclosure of the base namespace 

R_BaseNamespace 

ENVSXP

(7)Hash table

R中的environments都有一个hash table,默认的是new.env()

(8)Attributes

每一个SEXPREC都有一个指向node 的attributes的pointer

attributes可以通过ATTRIB和SET_ATTRIB来获取或设定,但只是用于判断是否为NULL或reset它的

在fn中getAttrib与setAttrib对attributes是有严格限制的

将一个object的attributes复制给另一个object,需(un)set这个"class'之后,才能copy这个object,对S4 bits同样



(9)mode、storage.mode、typeof




























0 0
原创粉丝点击