R Internals

来源于<<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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值