r - R 的文档或语言定义是否说明了 R 整数的预期用途?
问题描述
我看到的关于 R 的整数类型的一个常见评论是,它仅用于与 C 代码进行通信。R 文档的任何官方部分中是否出现过这样的声明?我经常发现自己制作向量integer(10)
的印象是它们对我的目的会更有效,只是为了记住这个民间传说并重新考虑我是否应该将整数用于从不尝试与 C 代码通信的代码。
解决方案
我不这么认为。这种民间传说可能来自这样一个事实,即 R 在键入和强制方面非常松散,因此很容易意外地得到一个浮点变量。
整数类型当然可以节省内存:
> object.size(seq(1e8))
400000048 bytes
> object.size(seq(1e8)+0.1)
800000048 bytes
我还没有尝试过基准测试来查看 R 是否使用更快的整数与浮点算术例程,但你可以。
我没有仔细查看所有R 的文档,但在R 语言定义中对“整数”的全文搜索中出现的唯一稍微相关的注释是:
在大多数情况下,整数和数值之间的差异并不重要,因为 R 在使用数字时会做正确的事情。然而,有时我们想显式地为常量创建一个整数值。我们可以通过调用函数
as.integer
或使用各种其他技术来做到这一点......
我在 R 源代码树grep integer *.texi
的doc/manual
目录中做了一个并且没有(快速浏览)注意到任何其他看起来相关的东西。
推荐阅读
- scala - 根据多列更新一列
- sql-server - 参数为NULL时执行存储过程
- c# - 如何使用 LINQ 在 Select 中设置参数的值?
- mongodb - 在有许多查询字符串的mongo db中查找重复/新的有效方法
- python - 无法上传 15 个场景数据集(0.7 到 0.3)
- sql - Hive将max + 1插入同一张表不起作用
- python-3.x - Pywinauto - 运行相同命令时控制标识符消失
- jestjs - 开玩笑 mockResolvedValueOnce/mockReturnValueOnce 访问函数参数
- javascript - 每分钟调用多个 api 后,API 获取显示“网络请求失败”
- python - 在循环中以不同的名称保存数组