R中变量类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R中变量类型相关的知识,希望对你有一定的参考价值。

参考技术A R中变量类型:
• int 表示整数型变量。
• dbl 表示双精度浮点数型变量,或称实数。
• chr 表示字符向量,或称字符串。
• dttm 表示日期时间(日期+ 时间)型变量。
还有另外3 种常用的变量类型,虽然没有在这个数据集中出现,但很快就会在本书后面遇
到。
• lgl 表示逻辑型变量,是一个仅包括TRUE 和FALSE 的向量。
• fctr 表示因子,R 用其来表示具有固定数目的值的分类变量。
• date 表示日期型变量。

变量的类型和类别

【中文标题】变量的类型和类别【英文标题】:Types and classes of variables 【发布时间】:2011-09-09 14:57:08 【问题描述】:

两个 R 题:

    变量的类型(typeof返回)和类(class返回)有什么区别?区别是否类似于 C++ 语言中的区别? 可能的变量类型和类别有哪些?

【问题讨论】:

此相关帖子也可能提供有用的信息:***.com/questions/8855589/… 【参考方案1】:

在 R 中,每个“对象”都有一个 mode 和一个 class。前者表示对象在内存中的存储方式(数字、字符、列表和函数),而后者表示其抽象类型。例如:

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

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

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

typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"

这背后的推理可以找到here:

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

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

我在上面发布的链接还包含所有原生 R basic types(向量、列表等)和所有 compound objects(因子和 data.frames)的列表,以及 mode 的一些示例, typeofclass 与每种类型相关。

【讨论】:

“在 R 中,每个“对象”都有一个模式和一个类”,只要从 S4 OOP 类结构的角度来看。在 S3 中,对象可能没有分配类名:oldClass(matrix(1:10, 2,5)) # NULL【参考方案2】:

type 确实指的是 R 中可用的不同数据结构。R Language Definition manual 中的讨论可能会让您开始了解对象和类型。

另一方面,class 在 R 中的含义可能超出您的预期。从 R Language Definition 手册(随您的 R 版本提供):

2.2.4 类

R 有一个复杂的类系统1,主要通过类属性控制。此属性是包含列表的字符向量 对象继承的类。这构成了 R 中“泛型方法”功能的基础。

用户可以不受限制地访问和操作此属性。没有检查对象是否实际包含类方法所期望的组件。因此,更改类属性时应谨慎,当它们可用时,应优先使用特定的创建和强制函数。

【讨论】:

以上是关于R中变量类型的主要内容,如果未能解决你的问题,请参考以下文章

R:sprintf 混合类型变量列表

R语言--变量与数据类型

如何根据具有名称类型的变量在 R 中过滤和计数

R的变量类型和常用函数

r 随机森林错误 - 新数据中的预测变量类型不匹配

变量的类型和类别