在更长的脚本中,我必须将向量 A(2614)的长度与数据帧 B(1456000)的行数相乘。如果我直接这样做,length(A) * nrow(B)
我会收到消息,NAs produced by integer overflow
尽管当我乘以相同的数字时没有问题:
2614 * 1456000
[1] 3805984000
使乘法起作用的唯一方法是round(length(A)) * nrow(B)
or length(A) * round(nrow(B))
。但是由length
和产生的数字nrow
无论如何都必须是整数!此外,我使用函数 is.integer 的帮助页面上建议的以下函数对此进行了测试...
is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x-round(x)) < tol
...当然,它们是整数。那么为什么我需要拐杖“圆”在这里?非常令人费解......有人知道背景中发生了什么?