首页 > 解决方案 > R 的文档或语言定义是否说明了 R 整数的预期用途?

问题描述

我看到的关于 R 的整数类型的一个常见评论是,它仅用于与 C 代码进行通信。R 文档的任何官方部分中是否出现过这样的声明?我经常发现自己制作向量integer(10)的印象是它们对我的目的会更有效,只是为了记住这个民间传说并重新考虑我是否应该将整数用于从不尝试与 C 代码通信的代码。

标签: rintegercinterop

解决方案


我不这么认为。这种民间传说可能来自这样一个事实,即 R 在键入和强制方面非常松散,因此很容易意外地得到一个浮点变量。

整数类型当然可以节省内存:

> object.size(seq(1e8))
400000048 bytes
> object.size(seq(1e8)+0.1)
800000048 bytes

我还没有尝试过基准测试来查看 R 是否使用更快的整数与浮点算术例程,但你可以。

我没有仔细查看所有R 的文档,但在R 语言定义中对“整数”的全文搜索中出现的唯一稍微相关的注释是:

在大多数情况下,整数和数值之间的差异并不重要,因为 R 在使用数字时会做正确的事情。然而,有时我们想显式地为常量创建一个整数值。我们可以通过调用函数as.integer或使用各种其他技术来做到这一点......

我在 R 源代码树grep integer *.texidoc/manual目录中做了一个并且没有(快速浏览)注意到任何其他看起来相关的东西。


推荐阅读