r - R中整数类和数字类有什么区别

标签 r class object integer numeric

我想以此作为序言,说我是一个绝对的编程初学者,所以请原谅这个问题是多么基本。

我试图更好地理解 R 中的“原子”类,也许这适用于一般编程中的类。我理解字符、逻辑和复杂数据类之间的区别,但我正在努力寻找数字类和整数类之间的根本区别。

假设我有一个简单的向量 x <- c(4, 5, 6, 6)整数,它是一个整数类是有意义的。但是当我这样做时class(x)我得到[1] "numeric" 。然后,如果我将此向量转换为整数类 x <- as.integer(x) 。它返回完全相同的数字列表,只是类别不同。

我的问题是为什么会出现这种情况,为什么一组整数的默认类是数字类,以及将整数设置为数字而不是整数的优点和/或缺点是什么。

最佳答案

有多个类被分组为“数字”类,其中最常见的 2 个类是 double(对于 double float )和整数。 R 会在需要时自动在数字类之间进行转换,因此对于普通用户来说,大多数情况下数字 3 当前存储为整数还是 double 并不重要。大多数数学运算都是使用 double 完成的,因此这通常是默认存储。

有时,如果您知道向量永远不会转换为 double (用作 ID 值或索引),因为整数需要较少的存储空间,您可能需要专门将向量存储为整数。但是,如果它们要用于任何将它们转换为 double 的数学,那么一开始将它们存储为 double 可能是最快的。

关于r - R中整数类和数字类有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660094/

相关文章:

R:如何在函数内创建和寻址 data.table 的列

java - 告诉 Java Class<T> T 中有某个方法

class - 将属性添加到现有 VBA 类

python - 不懂Python的csv.reader对象

r - indicoio 包的face_emotion() 给出 "Couldn' t 连接到主机“错误

r - 在 mutate 中将参数传递给 pmap

r - 安装 Tabulizer 时出错

Python 错误 "NameError: global name ' self' is not defined"在同一个类中调用另一个方法时

c++ - 在没有对象的情况下推回 vector 中的对象

c++ - 基于对象指针在 vector 中获取对象