问题标签 [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.
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
值矩阵?
r - big64 - NA 向量上的 sum() 产生奇数结果
使用big64
包时,将一个向量NAs
与另一个整数向量相加会产生不准确的结果。根据NA
向量是先求和还是最后求和,结果将分别是0
正确答案的一个或两倍。
请注意,将NA
向量从 integer64 转换为将消除该问题。
然而,当用其他小值代替 y 进行试验时,结果非常奇怪。例如:
关于发生了什么的任何想法?
例子:
给y
一个值,结果也很格格不入
r - 如何使用 bit64 功能将 data.table::fread 包装在您自己的包中?
我有一个包,其中包含一个fread
从data.table
. data.table
在其说明文件的 Suggests 字段中有bit64
包,它提供fread
了将大整数导入为
integer64
而不是numeric
. 我的包中默认需要此功能。
这是一个可重现的示例,在 R 3.1.3 下(早期版本没有这个问题)。
尝试 1
当我跑步时R CMD check
,
我得到以下信息NOTE
:
尝试 2
该文档建议替换library
为requireNamespace
. 这会检查包是否存在,但不会将其加载到 R 的搜索路径中。
如果我将定义更新read_data
为:
然后R CMD check
运行顺利,但由于bit64
现在没有加载,fread
没有读取长整数的能力。
尝试 3
如果我更改部分中的so DESCRIPTION
(而不是, 并保持尝试 2,或将其简化为bit64
Depends
Suggests
read_data
然后R CMD check
给出NOTE
:
我不太确定在这种情况下我应该导入什么。
尝试 4
如果我保留bit64
在该Depends
部分中,并使用 的原始定义read_data
,
然后R CMD check
给出NOTE
:
我觉得应该有一些神奇的DESCRIPTION
函数定义组合,为我提供bit64
功能并R CMD check
干净利落地通过;我只是看不到我错过了什么。
我怎样才能做到这一点?
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
r - 安装位 64 RStudio
早上好,我正在尝试安装这个软件包:
install.packages("bit64")
但我收到此错误:
r - 带 fst 的 bit64 整数
我在包含长整数的 csv 中有数据。我在 csvs 和fst
文件之间交换这些数据。
例如,
有没有办法为包含整数fst
的 s 使用文件data.table
bit64
r - 为什么 as.integer64("") 返回 0 而不是 NA_integer64_?
鉴于as.integer()
空字符串的基本强制是NA
没有警告的,如:
我很难理解为什么bit64::as.integer64()
在没有警告的情况下强制为零:
更奇怪的是比较:
和:
我的解决方法非常失败:
所以,我要问:
为什么会这样?
什么是最好的解决方法?
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)
吗?对于最后一个问题,我猜转换不是基于位到位的复制。
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 发行版中使用的底层库。我将非常感谢有关如何解决此问题的任何建议或指示。
r - R羽毛整数64保留大数
我有一个包含大量数字的数据集:
但是,当我使用 R 羽毛保存此数据并重新加载时,不会保留大量数字。
这是 integer64 类型的真正问题吗?我应该怎么做才能保留这么大的数字?