问题标签 [bit64]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3886 浏览

r - 如何将 integer64 值的数据框转换为矩阵?

我有一个完全由integer64我想转换为矩阵的列组成的数据框。

不幸的是,as.matrix没有给出正确的答案。

问题似乎是integer64值被存储为具有“integer64”类属性的数值(加上一些使它们正确打印和执行算术的魔法),该属性被as.matrix.

我不能这样做class(m) <- "integer64",因为这会改变矩阵对象的类而不是它的内容。

同样,mode(m) <- "integer64"给出错误的答案typeof(m) <- "integer64"storage.mode(m) <- "integer64"抛出错误。

当然,我可以通过将列转换为双 ( dfr$x <- as.double(dfr$x)) 来规避这个问题,但感觉应该有一种方法可以正确地做到这一点。

如何获得integer64值矩阵?

0 投票
1 回答
115 浏览

r - big64 - NA 向量上的 sum() 产生奇数结果

使用big64包时,将一个向量NAs与另一个整数向量相加会产生不准确的结果。根据NA向量是先求和还是最后求和,结果将分别是0正确答案的一个或两倍。

请注意,将NA向量从 integer64 转换为将消除该问题。

然而,当用其他小值代替 y 进行试验时,结果非常奇怪。例如:

关于发生了什么的任何想法?

例子:

y一个值,结果也很格格不入

0 投票
1 回答
248 浏览

r - 如何使用 bit64 功能将 data.table::fread 包装在您自己的包中?

我有一个包,其中包含一个freaddata.table. data.table在其说明文件的 Suggests 字段中有bit64包,它提供fread了将大整数导入为 integer64而不是numeric. 我的包中默认需要此功能。

这是一个可重现的示例,在 R 3.1.3 下(早期版本没有这个问题)。


尝试 1

当我跑步时R CMD check

我得到以下信息NOTE


尝试 2

文档建议替换libraryrequireNamespace. 这会检查包是否存在,但不会将其加载到 R 的搜索路径中。

如果我将定义更新read_data为:

然后R CMD check运行顺利,但由于bit64现在没有加载,fread没有读取长整数的能力。


尝试 3

如果我更改部分中的so DESCRIPTION(而不是, 并保持尝试 2,或将其简化为bit64DependsSuggestsread_data

然后R CMD check给出NOTE

我不太确定在这种情况下我应该导入什么。


尝试 4

如果我保留bit64在该Depends部分中,并使用 的原始定义read_data

然后R CMD check给出NOTE


我觉得应该有一些神奇的DESCRIPTION函数定义组合,为我提供bit64功能并R CMD check干净利落地通过;我只是看不到我错过了什么。

我怎样才能做到这一点?

0 投票
1 回答
743 浏览

r - R,bit64,在 data.table 中计算行均值和标准差的问题

我正在尝试使用更大的数字,超过 2^32。虽然我也在使用 data.table 和 fread,但我认为问题与它们无关。我可以在不更改 data.table 或使用 fread 的情况下打开和关闭它们的症状。我的症状是,当我预期正指数 1e+3 到 1e+17 时,我得到的报告平均值为 4.1e-302

使用与 integer64 相关的 bit64 包和函数时,问题始终出现。在“常规大小的数据和 R”中事情对我有用,但我在这个包中没有正确表达事情。请参阅下面的代码和数据。

我在 MacBook Pro,16GB,i7(更新)上。

我重新启动了我的 R 会话并清除了工作区,但问题始终存在。

请多多指教,感谢您的意见。我认为它必须使用库 bit64。

我查看的链接包括 bit64 doc

由 fread() 内存泄漏引起的具有类似症状的问题,但我认为我已消除

这是我的输入数据

我的代码,使用这个示例数据

...现在问题开始了

常规数据上的常规大小 R,仍然使用 fread() 将数据读入 data.table() - WORKS

0 投票
0 回答
1293 浏览

r - 安装位 64 RStudio

早上好,我正在尝试安装这个软件包:

install.packages("bit64")

但我收到此错误:

0 投票
2 回答
198 浏览

r - 带 fst 的 bit64 整数

我在包含长整数的 csv 中有数据。我在 csvs 和fst文件之间交换这些数据。

例如,

有没有办法为包含整数fst的 s 使用文件data.tablebit64

0 投票
1 回答
881 浏览

r - 为什么 as.integer64("") 返回 0 而不是 NA_integer64_?

鉴于as.integer()空字符串的基本强制是NA没有警告的,如:

我很难理解为什么bit64::as.integer64()在没有警告的情况下强制为零:

更奇怪的是比较:

和:

我的解决方法非常失败:

所以,我要问:

  • 为什么会这样?

  • 什么是最好的解决方法?

0 投票
0 回答
278 浏览

r - integer64 和 Rcpp 兼容性

在不久的将来,我的包中将需要 64 位整数。我正在研究基于bit64包的可行性。data.table基本上,我计划在 S3 类中包含一个或多个列,interger64并且我计划使用 Rcpp 将此表传递给 C++ 函数。

以下来自 Rcpp 库的nanotime 示例清楚地解释了如何在 double 向量上构建 64 位 int 向量,并解释如何创建integer64从 C++ 到 R 的对象。

我现在想知道如何处理interger64从 R 到 C++ 的问题。我想我可以颠倒这个原则。

那是对的吗?还有另一种方法吗?我们可以使用包装器as<std::vector<int64_t>>(v)吗?对于最后一个问题,我猜转换不是基于位到位的复制。

0 投票
0 回答
14 浏览

r - 如何解决 RedHat Linux Distro 上 rgdal、bit64 和 dplyr 干扰引起的错误

在 Redhat 上使用包含 rgdal 的库运行以下代码时,我得到不正确的结果。具体来说,inner_join 似乎复制了第一个数据帧的每一行,而不考虑第二个数据帧的键(因此只是复制而不是连接)。

这是一个从交互式 Web 应用程序 (r-shiny) 中更大的代码中提取的最小运行示例。在那里,我的原始数据框有数千行。除了不正确的结果之外,连接也会超出内存。

我已经尝试了几个 Linux Distros 和 R 版本。这是我遇到此错误的配置:Red Hat Enterprise Linux Server release 7.6 (Maipo) R 版本 3.5.2(来自 EPEL)或 3.6.0(从头开始编译)

该错误不会出现在 Ubuntu 18.04.2 LTS 上,无论是 R 版本 3.6.0 还是 R 版本 3.4.4。

这是代码:

结果是:

正确的是:

考虑到不同 Linux 发行版(但相同的 R 版本和库)上的不同结果,我认为该错误源于 RedHat 发行版中使用的底层库。我将非常感谢有关如何解决此问题的任何建议或指示。

0 投票
0 回答
54 浏览

r - R羽毛整数64保留大数

我有一个包含大量数字的数据集:

但是,当我使用 R 羽毛保存此数据并重新加载时,不会保留大量数字。

这是 integer64 类型的真正问题吗?我应该怎么做才能保留这么大的数字?