变量的类型和类

Leo*_*Leo 84 types r class

两个R问题:

  1. 变量的类型(返回者typeof)和类(返回者class)之间有什么区别?差异是否与C++语言相似?
  2. 什么是可能的变量类型和类别?

dil*_*iop 96

在R中,每个"对象"都有一个mode和一个class.前者表示对象如何存储在内存中(数字,字符,列表和函数),而后者表示其抽象类型.例如:

d <- data.frame(V1=c(1,2))
class(d)
# [1] "data.frame"
mode(d)
# [1] "list"
typeof(d)
# list
Run Code Online (Sandbox Code Playgroud)

如您所见,数据帧存储在内存中,list但它们被包装到data.frame对象中.后者允许使用成员函数以及重载函数,例如print使用自定义行为.

typeof(storage.mode)通常会提供相同的信息,mode但并非总是如此.例证:

typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"
Run Code Online (Sandbox Code Playgroud)

这背后的原因可以在这里找到:

R特定函数typeof返回R对象的类型

功能模式提供有关Becker,Chambers&Wilks(1988)意义上的对象模式的信息,并且与S语言的其他实现更兼容

自己发布上述的组合也链接包含所有天然R的列表basic types(矢量,列表等)和所有compound objects(因素和data.frames),以及如何一些例子mode,typeof并且class对于每种类型都有关.


Dir*_*tel 6

type实际上是指R中可用的不同数据结构." R语言定义"手册中的讨论 可能会让您开始研究对象和类型.

另一方面,classR中的其他东西意味着你所期望的东西.从R语言定义手册(随您的R版本附带):

2.2.4课程

R有一个精心设计的类系统1,主要通过class属性控制.此属性是一个字符向量,包含对象继承的类列表.这构成了R中"通用方法"功能的基础.

可以在没有用户限制的情况下虚拟地访问和操纵该属性.没有检查对象实际上是否包含类方法所期望的组件.因此,应该谨慎地改变class属性,当它们可用时,应该首选特定的创建和强制函数.