我想知道R中变量和对象之间的区别。代码中的“ a”是提供对象还是变量?这将保存在堆还是堆栈中?
a <- 1
答案 0 :(得分:5)
从数据类型的角度来看,1
和c(1,2,3)
之间没有区别。 R中的所有内容都是一个对象。例如:
a <- 1
b <- c(1,2,3)
typeof(a)==typeof(b)
#[1] TRUE
class(a)==class(b)
#[1] TRUE
R是一种高级语言,您无法了解R实际在何时何地分配内存。
答案 1 :(得分:1)
我们可以在R中进行面向对象的编程。实际上,R中的所有对象都是对象。
对象是一种具有某些属性和作用于其属性的方法的数据结构。
Class是对象的蓝图。我们可以将类视为房屋的草图(原型)。它包含有关地板,门,窗户等的所有详细信息。基于这些描述,我们建造了房屋。
房子是对象。由于可以通过描述来制作许多房屋,因此我们可以根据类创建许多对象。一个对象也称为类的实例,创建该对象的过程称为实例化。
尽管大多数编程语言只有一个类系统,但R却有三个类系统。即S3,S4以及最近的Reference类系统。
它们具有自己的特征和特性,因此优先选择一个。下面,我们对它们进行简要介绍。
S3类本质上有点原始。它缺少正式的定义,可以通过向其添加类属性来简单地创建此类的对象。
创建包含必需组件的列表
s <-列表(姓名=“拉斐”,年龄= 21,GPA = 3.72)
适当地命名课程
班级<-“学生”
S4类是对S3类的改进。它们具有正式定义的结构,有助于使同一个类的对象看起来或多或少相似。
现在,如果您来自C#和C背景,那么您必须认为
在C#中
int a = 2#它称为变量
Student std1 = new Student();#被称为对象
但是如上所述,R中的所有内容都称为对象。