labs - r plot title size




什么时候应该明确指定整数? (2)

你问:

没有指定整数有没有潜在的负面影响?

有些情况下可能更重要。 从钱伯斯数据分析软件 p193:

只要整数的绝对值小于2 ^ m,表示小数部分的长度(对于32位机器为2 ^ 54),整数值将被精确地表示为“双”数字。

不难看出,如果你计算一个值,它可能看起来像一个整数,但不是一个整数:

> (seq(-.45,.45,.15)*100)[3]
[1] -15
> (seq(-.45,.45,.15)*100)[3] == -15L
[1] FALSE

然而,很难想出一个显式输入一个整数的例子,并且在浮点数表达式中出现的不是一个整数,直到进入Chambers描述的较大值。

我经常写R代码,其中我测试矢量的长度,数据帧中的行数或矩阵的维数,例如if (length(myVector) == 1) 。 在一些基本的R代码中,我注意到在这样的比较中,值明确地表示为整数,通常使用'L'后缀,例如if (nrow(data.frame) == 5L) 。 显式整数有时也用于函数参数,例如cor函数中的这些语句: x <- matrix(x, ncol = 1L)apply(u, 2L, rank, na.last = "keep") 。 什么时候应该整数在R中明确指定? 没有指定整数有没有潜在的负面影响?


使用1L等是在程序上安全的,因为它是明确的,是什么意思,不依赖于任何转换等。

当以交互方式编写代码时,可以很容易地注意到错误并且一路修复,但是如果你正在编写一个包(甚至是基本的R ),那么明确就会更安全。

在考虑平等时,使用浮点数会导致精度问题请参阅本FAQ

显式指定整数避免了这一点,因为nrowlength ,以及索引参数apply return或require整数。





integer