也叫base type。R语言中每个object都有base type,通过typeof()
函数获取。
一个object只有一种type。type有如下几种分类:
parse()
and expression()
, EXPRSXPmode的概念是为了兼容S语言遗留下来的,在R语言中不建议使用,看到type和mode不相同也不用太纠结。获取mode的函数有mode()
或sotrage.mode()
。
mode可以理解为object的存储结构的标识,一个object只有一种mode。
最基础的原子mode有
复合(recursive)类型的object的mode有:
mode一般和types相同,除了一下几种情况(来自R help):
对象的强制类型转换(coercion)可以通过修改mode的值实现:
> a
[1] 1 2 3 4
> mode(a)
[1] "numeric"
> mode(a) <- "character"
> a
[1] "1" "2" "3" "4"
> mode(a)
[1] "character"
R语言中,object分为base object和OO object,base object就是没有定义class属性的对象,而OO object,可以通过class()获取该对象的类型。
class是object的一种属性,泛函数根据object的class值调用对应的函数。一个object若没有定义class属性(base object),则class(x)函数通常和mode(x)函数返回相同的值。
一个object可以不定义class,也可以定义一个或多个class。